喂, 我的目標是產生一個表中顯示了總屬於業主的每個代碼,請注意每個業主必須有代碼依賴於它,不管總價值是零。所以會有APP,REJ,CAN綁定到每個APPROVAL_ID。爲什麼外連接查詢不起作用?
APPROVAL_ID CODE TOTAL
----------- ---- -----
101 APP 2
101 REJ 1
101 CAN 3
102 APP 2
102 REJ 4
102 CAN 0
103 APP 0
103 REJ 0
103 CAN 4
因此,這裏是源代碼:
select approval_id, code, total
from (
select 'APP' code, '1' seq from dual
union all
select 'REJ' code, '2' seq from dual
union all
select 'CAN' code, '3' seq from dual
)
left outer join (
select m.approval_id, own.name, m.decision, count(*) total,
case own.channel
when 'CH1' then 'CH1'
when 'CH2' then 'CH2'
else 'Others Channel'
end the_channel
from tableM m, owner own
where m.decision in ('REJ', 'APP', 'CAN')
and own.id=m.approval_id
group by m.approval_id, own.name, m.decision, own.channel
order by m.approval_id
)
on code=decision
group by approval_id, code, total
order by approval_id;
從上述查詢的輸出是象下面這樣:
APPROVAL_ID CODE TOTAL
----------- ---- -----
101 APP 2
101 REJ 1
101 CAN 3
102 APP 2
102 REJ 4
103 CAN 4
內部查詢的輸出是象下面這樣:
APPROVAL_ID CODE TOTAL
----------- ---- -----
101 APP 2
101 REJ 1
101 CAN 3
102 APP 2
102 REJ 4
103 CAN 4
東西W¯¯因爲我知道某些行的總值爲零,所以應該在其中打印類似(空)值的東西。但爲什麼它隱藏在視圖中?我的查詢有什麼不對嗎?
THanks @!
什麼是內部查詢的回報? (選擇m.approval_id,own.name,m.decision,count(*)total,case own.channel'CH1',然後'CH1'當'CH2'時'CH2'else'其他頻道'結束tableM的the_channel m ,所有者自己在m.decision中('REJ','APP','CAN')和own.id = m.approval_id組中通過m.approval_id,staff.staff_name,m.decision,own.channel order by m。 approval_id) – forsvarir 2011-04-19 08:21:13
@forsvarir我已經添加了內部查詢的輸出。它與父母的產出完全一樣。 – huahsin68 2011-04-19 08:49:29
whats staff.staff_name在內部查詢中? – 2011-04-19 09:03:19