Yop les gars, j'ai cette petite question à résoudre; J'ai 2 tables [Clients] et [Commandes] qui sont liées par CustomerID. Il est facile d'get le COUNT () des commands par chaque client …
SELECT c.CompanyName, COUNT(*) AS [Nbr of Orders] FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID GROUP BY c.CompanyName
Mais le problème vient de la dernière partie de la question: j'ai besoin d'get cette list, mais seulement ceux qui ont plus de commands qu'un de ces clients (c.CompagnyName = 'XYZ') J'ai essayé d'append quelque chose comme cette clause WHERE
WHERE COUNT(*) > (SELECT COUNT(*) FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID WHERE c.CompagnyName = 'XYZ')
Erreur SQL: P Regardez ridicule je sais mais si quelqu'un peut me dire ce qui me manque!
On dirait que vous pouvez utiliser une clause having. Ainsi, votre exemple serait SELECT c.CompanyName, COUNT(*) AS [Nbr of Orders] FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID GROUP BY c.CompanyName having count(*) > 1
Je pense que vous voulez une clause HAVING plutôt qu'une clause WHERE, car vous filterz sur une fonction agrégée