我正在使用以下SQL來PIVOT數據時,這個SQL EXECUTE我得到的結果,但我也得到空值時,沒有特定日期的數據,因爲列是隨機生成我無法找到用0替換NULL值的方式。有人請幫助我這個。任何幫助將是偉大的。PIVOT列並用0替換空值
drop table #Daysoftheweek
create table #Daysoftheweek
(department varchar(10),TotalUtilized int,DayoftheWeek varchar(30))
insert into #Daysoftheweek
VALUES ('ER','0',convert (varchar(30),GETDATE()-1,120))
,('ICU','1',convert (varchar(30),GETDATE()-1,120))
,('ICU','1',convert (varchar(30),GETDATE()-2,120))
,('CICU','0',convert (varchar(30),GETDATE()-3,120))
DECLARE @cols NVARCHAR (MAX)
DECLARE @query NVARCHAR(MAX)
SELECT @cols = COALESCE (@cols + ',[' + CONVERT(NVARCHAR, DayoftheWeek, 106) + ']',
'[' + CONVERT(NVARCHAR, DayoftheWeek, 106) + ']')
FROM (SELECT DISTINCT DayoftheWeek FROM #Daysoftheweek) PV
ORDER BY DayoftheWeek
SET @query = '
SELECT * FROM
(
SELECT * FROM #Daysoftheweek
) x
PIVOT
(
avg(TotalUtilized)
FOR DayoftheWeek IN (' + @cols + ')
) p
'
EXEC SP_EXECUTESQL @query
Serg,當我執行這個SQL我缺少列名稱。以前我以日期時間作爲列名。但我在這裏錯過了那些列名稱。 – user3311323