Graf für Gruppen und Untergruppen

Ich arbeite mit SQL server 2008. Es gibt Tabelle mit Projekten, ihren Status und date:

ID Status Date 1 Gone 21-10-2011 2 Cancelled 01-10-2011 3 Won 02-10-2011 4 Won 07-10-2011 5 Gone 02-01-2010 6 Won 24-01-2010 

Für statistische Zwecke brauche ich eine T-SQL-Abfrage, die im Ergebnis die Tabelle wie folgt zurückgibt:

 Month Year Total Lost Won 10 2011 4 2 2 01 2010 2 1 1 

Woher:

Insgesamt bedeutet Gesamteintragsbetrag für ein einheitliches Monatspaar.

Verloren bedeutet Gesamteintragsbetrag für ein einziges Monatspaar mit Status 'Gone' oder 'Canceled'

Won bedeutet Gesamteingangsbetrag für ein einheitliches Monatspaar mit Status 'Won'.

Ich verstehe, wie kann ich die Gesamtmenge für ein einzigartiges Monatsjahr bekommen, aber ich weiß nicht, wie man die Ergebnismenge hinzufügen kann. Lost and Won Spalten und bekomme Eintragsbeträge. Und natürlich, wenn es keine "Won" -Projekte für Monat-Jahr-Paar und nur 'Lost' gibt es 0 Wert für Won Spalte.

 SELECT MONTH([Date]) [Month], YEAR([Date]) [Year], COUNT(*) [Total], COUNT(CASE WHEN Status IN ('Gone', 'Cancelled') THEN 1 END) [Lost], COUNT(CASE WHEN Status= 'Won' THEN 1 END) [Won] FROM MyTable GROUP BY MONTH([Date]), YEAR([Date]) 

Das funktioniert, weil die stille ELSE im CASE NULL gibt und COUNT das ignoriert