Преобразование данных в таблице в другое представление - PullRequest
0 голосов
/ 13 апреля 2009

У меня есть следующая таблица с данными:

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

Как правило, для группы тегов имеются значения вдоль даты (1, 2 марта, ...). Я хотел бы иметь данные в другом виде, как это:

dt             tag(1)   tag(2)   tag(3)
2009/03/01     10.2     12       120
2009/03/02     13.2     9        23
....

Я пытался использовать следующий SQL, чтобы получить только значение тега (1)

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

как я могу получить все значения tag (1), tag (2) и tag (3) в одном столбце по дате с помощью TSQL?

Кстати, у меня есть Microsoft SQL Server 2005.

1 Ответ

3 голосов
/ 13 апреля 2009
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...