我的数据包含下表:
tag dt value
1 2009/03/01 10.2
2 2009/03/01 12
3 2009/03/01 120
....
1 2009/03/02 13.2
2 2009/03/02 9
3 2009/03/02 23
....
基本上,对于一组标签,沿日期(3月1日,2日,......)有值。我希望将数据放在不同的视图中:
dt tag(1) tag(2) tag(3)
2009/03/01 10.2 12 120
2009/03/02 13.2 9 23
....
我尝试使用以下SQL只获取tag(1)'value
SELECT dt, SUM(value) [tag(1)] FROM myTable
GROUP BY dt, tagid
HAVING tagid = 1
如何使用TSQL按日期在一列中获取所有tag(1),tag(2)和tag(3)的值?
顺便说一下,我有Microsoft SQL Server 2005。
答案 0 :(得分:3)
SELECT dt,
SUM(case when tag=1 then value else 0 end) as tag1,
SUM(case when tag=2 then value else 0 end) as tag2,
SUM(case when tag=3 then value else 0 end) as tag3
FROM myTable
GROUP BY dt