【发布时间】:2016-12-29 17:59:29
【问题描述】:
我在尝试旋转我的数据时遇到了困难:(它是动态数据,结构如下:
| Date | Source | Amount |
--------------------------------------------
| 12/1/2016 | Source1 | $0 |
| 12/1/2016 | Source2 | $2 |
| 12/1/2016 | Source3 | $5 |
| 12/1/2016 | Source4 | $4 |
可以有无限的来源,我想按来源/日期调整它:
| Date | Source1 | Source 2 | Source 3 | Source 4 |
--------------------------------------------------------------------------------------
| 12/1/2016 | $0 | $2 | $5 | $4 |
反正就是这样。
我已经尝试了很多编码方式,所以我只输入我认为可能的方式:
SELECT myDate , Source, Amount
FROM mydb
PIVOT
(max(source) FOR source IN (select distinct source from mydb) as myPivotTable
WHERE (myDate > @StartDate)
当然,这是行不通的。这将成为存储过程的一部分,只是不完全存在。希望以这些数据为中心,以便我可以在 SSRS 中做一些线趋势。
我也跟着另一个例子尝试了这个:
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(source)
from mydb where myDate > @StartDate
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
然后尝试使用它来代替“选择不同”。但是,来源是文本,这对我来说似乎没有多大作用。
【问题讨论】:
-
我正在等待动态枢轴出现。
-
@GurwinderSingh 你让我咯咯笑
标签: sql-server tsql stored-procedures pivot-table