J'ai du mal à utiliser Compter dans une sous-requête. Je veux écrire une requête qui retournera le nombre de commentaires par consommation, mais le compte me donne le nombre total de commentaires existants.
SELECT con.Consumer_ID, con.Scheduled, con.Been_Called, (SELECT COUNT(*) FROM Comments WHERE com.ConsumerID = con.Consumer_ID) AS NumComments FROM Consumers con INNER JOIN Comments com ON con.Consumer_ID = com.ConsumerID
3 Réponses :
Votre clause où la clause de la sous-requête est incorrecte:
SELECT con.Consumer_ID, con.Scheduled, con.Been_Called, ( SELECT COUNT(*) FROM Comments c WHERE c.ConsumerID = con.Consumer_ID ) AS NumComments FROM Consumers con
On dirait que vous surchargez cela. Une simple join agrégée pourrait faire l'affaire, comme:
SELECT con.Consumer_ID, con.Scheduled, con.Been_Called, COUNT(DISTINCT com.CommentID) AS NumComments FROM Consumers con INNER JOIN Comments com ON con.Consumer_ID = com.ConsumerID GROUP BY con.Consumer_ID, con.Scheduled, con.Been_Called