Как иметь одну строку несколько столбцов вместо нескольких строк

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

В SQL Server Как я могу иметь группы по weekdate поэтому у меня есть только один ряд для каждого weekdateпример для weekdate 2015-11-14:

Любая подсказка?

2 ответа

Используйте условную агрегацию.

select cast(weekdate as date), 
sum(case when permittype = 0 then total else 0 end) as permittype0,
sum(case when permittype = 1 then total else 0 end) as permittype1
from tablename
group by cast(weekdate as date)

Я бы сделал это с помощью условного агрегирования:

select weekdate,
       sum(case when permittype = 0 then total else 0 end) as permitttype0,
       sum(case when permittype = 1 then total else 0 end) as permitttype1
from followingdata t
group by weekdate
order by weekdate;

Вы также можете использовать pivot синтаксис, если вы предпочитаете.

Другие вопросы по тегам