Requête SQL pour sélectionner des loggings pour des lignes ayant une valeur = 0 dans une colonne et un identifiant unique dans une autre colonne

ID amount account number(varchar) 5105 0.70 23423423 5105 0.0 null 5105 0.0 null 5104 0.0 null 5104 0.0 null 5104 0.0 null 5106 0.0 32132111 5106 0.0 null 

Je veux get l'identifiant distinct pour lequel toute sa valeur est 0.0 et le numéro de count est nul. Fondamentalement à partir de cette table, je veux le résultat en 5104. Quelqu'un peut-il s'il vous plaît aider je suis nouveau à SQL.

 Select DISTINCT ID FROM TableName GROUP BY ID HAVING SUM(amount)=0.0 

Mise à jour pour une autre condition (une autre colonne qui est varchar, elle devrait être nulle)

  Select DISTINCT ID FROM TableName WHERE AnotherColumn IS NULL GROUP BY ID HAVING SUM(amount)=0.0 

SQL Fiddle: http://sqlfiddle.com/#!2/145504/3

 Select DISTINCT ID FROM TableName GROUP BY ID HAVING min(amount)=0.0 and max(amount)=0.0 

Cela marche:

 SELECT ID, MAX(amount) FROM table_name GROUP BY ID HAVING MAX(amount)=0 

Voici un violon

Vous pouvez utiliser

 SELECT id, MIN(amount) AS minumum, MAX(amount) AS maximum FROM your_table GROUP BY id HAVING minimum = 0.0 AND maximum = 0.0 

une sum simple ne fonctionnerait pas à mon avis car vous pourriez avoir un montant de -1 et un de 1, avec une sum de 0.

Puisque vous n'avez pas écrit si vous pouvez avoir des valeurs négatives, il est nécessaire de vérifier le minimum.

Ajout pour la nouvelle limitation:

 SELECT id, MIN(amount) AS min_value, MAX(amount) AS max_value, MAX(account) AS max_account FROM your_table GROUP BY id HAVING min_value = 0.0 AND max_value = 0.0 AND max_account IS null