SQL Server: affiche une list des clients qui ont plus de commands qu'un client spécifié

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