2016-04-01 6 views

Antwort

2

Sie ohne PIVOT erreichen

SELECT 
    DATEPART(yyyy,t.the_date) as year, 
    SUM(CASE WHEN DATEPART(mm,t.the_date)=1 THEN 1 ELSE 0 END) as Jan, 
    SUM(CASE WHEN DATEPART(mm,t.the_date)=2 THEN 1 ELSE 0 END) as Feb, 
... 
    SUM(CASE WHEN DATEPART(mm,t.the_date)=12 THEN 1 ELSE 0 END) as Dec, 
    COUNT(*) as Total 
FROM the_table t 
GROUP BY DATEPART(yyyy,t.the_date) 
+0

Auch dies funktioniert. Wäre es immer noch möglich, 'PIVOT' für eine solche Abfrage zu verwenden, und wäre es besser als 'GROUP BY'? –

1

versuchen, diese Abfrage mit: -

SELECT * 
    FROM (
     SELECT 
      year(yourDate) as [year],left(datename(month,yourDate),3)as [month], 
      Amount 
     FROM YourTableName 
    ) as s 
    PIVOT 
    (
     SUM(Amount) 
     FOR [month] IN (jan, feb, mar, apr, 
     may, jun, jul, aug, sep, oct, nov, dec) 
    )AS pvt 
Verwandte Themen