В ответ на: select Date_id, ID, sum(ID) from table
group by ID, Date_id
Пипец... К плохим програмистам точно на новый год приходит не Дед Мороз, а Дид Лок...
Просто очень познавательна конструкция sum(ID) в свете group by ID.
Нафига так позориться-то??
не, в таком виде средствами SQL в общем случае не решаемо - потому что количество полей запроса заранее неизвестно
Хотя если ты знаешь максимальный ID в запросе, то можно через внутренние объединения к одной и той же таблице - но это громоздко получится
Осторожнее с травой!
Если хапнешь много дряни
Увезут тебя с собой
Злые инопланетяне
1. "курсором в строку" - и рискуем нарваться на ограничения, например, по длине тектста запроса, если этих ID вдруг окажется слишком много.
2. "Pivot" - а если у автора 2000-ный скуль?
Insert Into Z Values('20010101', 1)
Insert Into Z Values('20010101', 2)
Insert Into Z Values('20010101', 2)
Insert Into Z Values('20010101', 2)
Insert Into Z Values('20010101', 2)
Insert Into Z Values('20010101', 3)
Insert Into Z Values('20020101', 1)
Insert Into Z Values('20020101', 3)
Insert Into Z Values('20030101', 1)
Insert Into Z Values('20030101', 2)
Insert Into Z Values('20030101', 3)
Insert Into Z Values('20040101', 3)
Insert Into Z Values('20050101', 3)
Select
_Date, SUM(ID_1) ID_1, SUM(ID_2) ID_2, SUM(ID_3) ID_3
From
(
Select
_Date,
(CASE When ID = 1 Then 1 Else 0 End) ID_1,
(CASE When ID = 2 Then 1 Else 0 End) ID_2,
(CASE When ID = 3 Then 1 Else 0 End) ID_3
From Z
) Z
Group By _Date
ну а если 2005ый то можно так.
Pivot альтернатива case из-за которого запрос выглядит слишком запутанным.
Select date, ,[2],[3]
From
(Select date, id
from Table) as H
Pivot
(count(id)
for id in ( ,[2],[3])
) as Pvt