2011-12-09 11 views
1

したがって、月と年のコストの合計が動的であることを示す表を照会したいのですが、この問合せを書きましたが、コストはかかりません。動的に年を設定し、月ごとの合計を表示します

SELECT * 
FROM (
    SELECT TOP 100 2003 + ROW_NUMBER() OVER (ORDER BY PostingDate) AS Yr, SUM(Amount) as Total 
    FROM table1 
    GROUP BY PostingDate 
) Years 
WHERE Yr <= YEAR(GETDATE()) 

それは

month cost  year 
jan 12.00 2011 
feb 10.00 2011 

である必要があり、その後2010年までのための別の列には、この可能

..です

+0

テーブル/データの外観はどうなっていますか? – msmucker0527

答えて

0
SELECT 
CASE 
    WHEN DATEPART(month, PostingDate) = 1 then 'Jan', 
    WHEN DATEPART(month, PostingDate) = 2 then 'Feb', 
    WHEN DATEPART(month, PostingDate) = 3 then 'March', 
    WHEN DATEPART(month, PostingDate) = 4 then 'April', 
    WHEN DATEPART(month, PostingDate) = 5 then 'May', 
    WHEN DATEPART(month, PostingDate) = 6 then 'Jun', 
    WHEN DATEPART(month, PostingDate) = 7 then 'Jul', 
    WHEN DATEPART(month, PostingDate) = 8 then 'Aug', 
    WHEN DATEPART(month, PostingDate) = 9 then 'Sep', 
    WHEN DATEPART(month, PostingDate) = 10 then 'Oct', 
    WHEN DATEPART(month, PostingDate) = 11 then 'Nov', 
ELSE 'DEC' as [Month], 
SUM(Amount) as Total, 
DATEPART(year, PostingDate) as [Year] 
FROM 
    Table1 
WHERE 
    DATEPART(year, PostingDate) <= DATEPART(year, GETDATE()) 
GROUP BY 
    DATEPART(year, PostingDate) as [Year], 
    DATEPART(month, PostingDate) as [Month] 

注:テストされていないだけのメモ帳で行わ:/

関連する問題