2012-07-28 33 views
0

如果行存在但在我的「where」條件中沒有金額,則需要將金額設置爲「0」。如果該行存在但我的「where」條件中沒有金額,則需要將金額設置爲「0」

原始命令是:

select t.aaa, count (t.bbb), sum (t.ccc) 
from nrb t 
where t.vvv IN ('3','4','5','6','D','E','F') 
    and t.ddd like '50%' 
    and t.eee >= TO_DATE('2012/03/21','YYYY/MM/DD') 
    and t.eee <= TO_DATE('2012/07/21','YYYY/MM/DD') 
group by t.aaa 
order by t.aaa 

,其結果是:在Excel文件 「結果」 標籤。

我需要此結果: 「結果2」選項卡在Excel文件中。

該文件:我確實發送了完整的結果。 http://www.mediafire.com/?69cc4ay6cyt9cr9

我該怎麼辦?

PL/SQL 7.0.2無限用戶許可

OCI:9.2

Oracle數據庫:11.1.0.6.0企業

OS:Win XP的

回答

1

你可能想:

select t1.aaa, coalesce(t2.bbb_count, 0) bbb_count, 
    coalesce(t2.ccc_sum, 0) ccc_sum 
from (
    select distinct aaa 
    from nrb 
) t1 
left join (
    select t.aaa, count (t.bbb) bbb_count, sum (t.ccc) ccc_sum 
    from nrb t 
    where t.vvv IN ('3','4','5','6','D','E','F') 
    and t.ddd like '50%' 
    and t.eee >= TO_DATE('2012/03/21','YYYY/MM/DD') 
    and t.eee <= TO_DATE('2012/07/21','YYYY/MM/DD') 
    group by t.aaa 
) t2 on t1.aaa = t2.aaa 
order by t1.aaa; 
+0

它的工作。今天我學到了些東西。很多。 – 2012-07-28 12:23:05

+0

- >新問題: 這個查詢會給我一個3列的表。我怎麼能像Excel表一樣製作表格並將「t.ddd like '50%'」「循環爲」t.ddd like '55%'「」。我的意思是我將有15列與相同的行。 – 2012-07-28 12:43:27