2009-04-13 5 views
0

I持っているデータでは、次の表:別のビューにテーブル内のデータを変換し

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 
.... 

私は(1)」の値

SELECT dt, SUM(value) [tag(1)] FROM myTable 
GROUP BY dt, tagid 
HAVING tagid = 1 

は、どのように私は(すべてのタグを取得することができる唯一のタグを取得するには、次のSQLを使用しようとしました1)、tag(2)、tag(3)の値をTSQLを使用して日付ごとに1つの列に格納しますか?私は、Microsoft SQL Server 2005の

case文での素敵な

答えて

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 
+0

を持っところで

! –

関連する問題