В Oracle У меня есть запрос, который использует условное агрегирование для отображения итогов. См. http://sqlfiddle.com/#! 4 / ab1915 / 2
select ts.description,
sum(case when ta.group_number = 1 then 1 else 0 end) group_one
,sum(case when ta.group_number = 2 then 1 else 0 end) group_two
,sum(case when ta.group_number = 3 then 1 else 0 end) group_three
from ta
join ts on ta.status_id=ts.status_id
group by ts.description;
Однако мне нужны результаты, чтобы показать еще одну строку для статуса «отменено», который в настоящее время не отображается, поскольку никаких записей с таким статусом нет, но мне все равно нужно отображать «отменено» с 0 счетами. Есть идеи, как мне это сделать?
DDL для этого примера:
create table ta (group_number number, status_id number);
create table ts (status_id number, description varchar(111));
insert into ta (group_number,status_id) values (1,1);
insert into ta (group_number,status_id) values (2,1);
insert into ta (group_number,status_id) values (3,2);
insert into ta (group_number,status_id) values (3,3);
insert into ta (group_number,status_id) values (3,3);