我正在使用Oracle數據庫,並且遇到了來自2個結果集的一個結果的問題。Oracle 11g:如何合併兩個結果集
我有表案例
Create table cases (ID varchar(1), date_entered date, sub_category varchar (5));
insert into cases (id, date_entered, sub_category)
values('1', to_date('2012/05/03','yyyy/mm/dd'),'Temp1');
insert into cases (id, date_entered, sub_category)
values('2', to_date('2012/06/01','yyyy/mm/dd'),'Temp2');
insert into cases (id, date_entered, sub_category)
values('3', to_date('2012/03/15','yyyy/mm/dd'),'Temp3');
insert into cases (id, date_entered, sub_category)
values('4', to_date('2012/03/01','yyyy/mm/dd'),'Call1');
insert into cases (id, date_entered, sub_category)
values('5', to_date('2012/03/08','yyyy/mm/dd'),'Call2');
insert into cases (id, date_entered, sub_category)
values('6', to_date('2012/02/20','yyyy/mm/dd'),'Call2');
,但需要計算記錄由副類別,分月,其中一個計數包括sub_category:TEMP1,TEMP2,TEMP3 其他數包括sub_category:CALL1,CALL2 ,Call3
我已QUERY1:
With skills
AS
(
Select sub_category,
date_entered,
extract(MONTH FROM cases.date_entered) as month_entered,
count (*)
from cases
where
SUB_CATEGORY IN('Temp1', 'Temp2', 'Temp3')
group by cases.sub_category, cases.date_entered
order by to_char(cases.date_entered,'MM')
)
select s.month_entered,
count(*)as skill_count
from skills s
group by s.month_entered
ORDER BY CAST(s.month_entered AS INTEGER) ASC
隨r esult:
MONTH_ENTERED SKILL_COUNT
3 1
5 1
6 1
和查詢2:
With training
AS
(
Select sub_category,
date_entered,
extract(MONTH FROM cases.date_entered) as month_entered,
count (*)
from cases
where
SUB_CATEGORY IN('Call1', 'Call2', 'Call3')
group by cases.sub_category, cases.date_entered
order by to_char(cases.date_entered,'MM')
)
select t.month_entered,
count(*)as training_count
from training t
group by t.month_entered
ORDER BY CAST(t.month_entered AS INTEGER) ASC
與結果:
MONTH_ENTERED TRAINING_COUNT
2 1
3 2
,我從這些2次的查詢需要的結果是:
MONTH_ENTERED SKILL_COUNT TRAINING_COUNT
2 0 1
3 1 2
5 1 0
6 1 0
試過工會並離開加入但沒有給我這個結果...
這裏是sqlfiddle例如http://sqlfiddle.com/#!4/504cd/31
請幫幫忙,這是迫切和我卡! 謝謝提前
GuiGi答案接受。 你能幫助我嗎?或者我需要新的問題? 如果我想在一年中的所有其他月份顯示零而哪些不在表格中,應該向查詢添加什麼內容?
太好了。感謝您的努力和快速回答。 – lana80