MySQL mit Sum and Case

Ich versuche, ein GridView mit ASP.NET zu erstellen, das eine Verbindung zu einer MySQL-Datenbank herstellt. Die Daten sehen wie folgt aus.

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

Basierend auf den obigen Aufzeichnungen möchte ich, dass das Ergebnis wie folgt aussieht

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

Mein aktueller Code ist unten. Es gibt mir einen Fehler (etwas über DatabaseName.sum existiert nicht. Überprüfen Sie den Abschnitt 'Parsing und Auflösung von Funktionsnamen' ...)

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 wird fortgesetzt

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

Ist Sum Case die beste Verwendung hier?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage