0
我想修改腳本以始終返回12行。問題是,如果只有幾條記錄,它只會顯示Oct和一個值。我使用這些數據來填充圖表,所以如果沒有數據我想顯示Jan 1,Feb 2等等,任何想法的人?強制數據透視表總是返回12行,代表12個月,而不管可用數據多少
DECLARE @cols AS NVARCHAR(MAX);
DECLARE @query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(year(TransactionDateTime))
FROM Quotations
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'');
SET @query =
'SELECT [month], ' + @Cols + '
FROM (
SELECT
left(datename(month,TransactionDateTime),3) as [month],
datepart(month,TransactionDateTime) as [monthNum],
year(TransactionDateTime) as [year],
isnull(count(*),0) as Total
FROM quotations
group by left(datename(month,TransactionDateTime),3), datepart(month,TransactionDateTime), year(TransactionDateTime)
) as s
PIVOT
(
SUM(Total)
FOR [year] IN (' + @cols + ')
) AS QuotationResults
ORDER BY QuotationResults.MonthNum;';
EXECUTE(@query);
你能提供的樣本數據和預期的結果? –
所以我得到一行,如果只有1個記錄在表中,但我想要11更多的行顯示0. – John
這是不可用的,你可以至少從'報價表'張貼日期嗎? –