MySQL à l'aide de Somme et le Cas

Je suis en train de créer un GridView avec ASP.NET connexion à une base de données MySQL. Les données s'affiche comme ci-dessous.

BusinessUnit    OrderDate      Canceled
UnitA           1/15/2013          N
UnitA           10/1/2013          N
UnitB           10/15/2013         N
UnitB           10/22/2013         N
UnitB           10/22/2013         N

Sur la base des relevés ci-dessus, j'aimerais que le résultat apparaisse comme ci-dessous

BusinessUnit  TodaysOrders   ThisMonthsOrders  ThisYearsOrders
UnitA              0                1                2
UnitB              2                3                3

Mon code est ci-dessous. Il me fait une erreur (quelque chose à propos de DatabaseName.somme n'existe pas. De vérifier la
Nom de la fonction d'Analyse et de Résolution de section... )

Select  
    SUM (CASE WHEN (OrderDate)=DATE(NOW()) THEN 1 ELSE 0 END) AS TodaysOrders,
    SUM (CASE WHEN YEAR(OrderDate) = YEAR(CURDATE()) AND MONTH(OrderDate) = MONTH(CURDATE()) THEN 1 ELSE 0 END) AS ThisMonthsOrders,
    SUM (CASE WHEN YEAR(main_order_managers.creation_date) = YEAR(CURDATE()) THEN 1 ELSE 0 END) AS ThisYearsOrders 

code continue

FROM OrderTable WHERE OrderTable.Canceled. <> 'Y';

Est la Somme des Cas la meilleure utilisation possible ici?

Votre contexte de la somme(cas) est très bien comme prévu, mais par Peterm de réponse sur l'espacement peut être votre problème... (cependant, la suppression de la période d'après Annulée. avant le <> "Y")

OriginalL'auteur Latex Person | 2013-10-22