将表中的数据转换为不同的视图

时间:2009-04-13 16:05:30

标签: sql-server-2005 tsql

我的数据包含下表:

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。

1 个答案:

答案 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