我正在尝试创建一个包含周日期列的数据透视表 - stuff 命令没有按 dateweek 排序,我做错了什么吗?日期不按任何顺序出现,例如 2019-01-07, 2020-02-24,2003-01-13,2020-12-21,2019-01-21
select product, expected, CAST(weekdue AS date) as dateweek into #tempemma from weekdueview
DECLARE @cols AS NVARCHAR(MAX)='';
set @cols = stuff((select distinct ',' + QUOTENAME(c.dateweek)
FROM (SELECT TOP(99.99) PERCENT dateweek FROM #tempemma ORDER BY dateweek desc) c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
select @cols
DECLARE @query AS NVARCHAR(MAX)='';
set @query =
'SELECT * from
(
select product, expected, dateweek from #tempemma
) src
pivot
(
sum(expected) for dateweek in (' + @cols + ')
) piv
'
execute(@query)
drop table #tempemma
Run Code Online (Sandbox Code Playgroud)
如何按日期周列对此进行排序?
这是一个对列进行排序的小例子
Declare @YourTable table (dateweek date)
Insert Into @YourTable values
('2019-01-07'),('2019-01-07'),('2020-02-24'),('2003-01-13'),('2020-12-21'),('2019-01-21')
Select stuff((Select distinct ',' + QUOTENAME(CONVERT(varchar(10),dateweek, 23))
From @YourTable
Order By 1
For XML Path('') )
,1,1,'')
Run Code Online (Sandbox Code Playgroud)
注意: 修正了拉努敏锐的观察力。
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |