2013-04-30 87 views
1

我有沒有產生預期的結果,下面的查詢:怎樣才能真正加入例子?

SELECT "invoice"."ITEMNO", 
    "invoice"."Outgoing", 
    "storeage"."incoming" 
FROM "MVXJDTAP"."MVXJDTA"."invoice" 
INNER JOIN "MVXJDTAP"."MVXJDTA"."storeage " 
    ON "invoice"."ITEMNO" = "storeage"."itemno" 
ORDER BY"storeage"."itemno" 

Tables: 
invoice 
itemno  Outgoing 
ZOMV3-94  4 
ZOMV3-94  7 

storeage 
itemno  incoming 
ZOMV3-94 3 
ZOMV3-94 1 
ZOMV3-94 60 
ZOMV3-94 5 

查詢給出結果:

itemno  outgoing  incoming 
ZOMV3-94  4    3 
ZOMV3-94  4    1 
ZOMV3-94  4    60 
ZOMV3-94  4    5 
ZOMV3-94  7    3 
ZOMV3-94  7    1 
ZOMV3-94  7    60 
ZOMV3-94  7    5 

但我希望得到以下結果爲TRUE:

ZOMV3-94  4   NULL OR 0 
ZOMV3-94  7   NULL OR 0 
ZOMV3-94  NULL OR 0  3 
ZOMV3-94  NULL OR 0  1 
ZOMV3-94  NULL OR 0  60 
ZOMV3-94  NULL OR 0  5 

我怎樣才能得到這個結果?

+3

你爲什麼把「你的」「表」「和」「列」「名」「所有」「」放入「」引號「中?似乎沒有一個好的理由 - 除非你的意圖是讓你的代碼難以閱讀。 – 2013-04-30 13:51:33

回答

7

您可以使用UNION ALL代替JOIN得到結果:

select itemno, 
    outgoing, 
    null as incoming 
from invoice 
union all 
select itemno, 
    null, 
    incoming 
from storeage; 

SQL Fiddle with Demo。這給出了一個結果:

| ITEMNO | OUTGOING | INCOMING | 
---------------------------------- 
| ZOMV3-94 |  4 | (null) | 
| ZOMV3-94 |  7 | (null) | 
| ZOMV3-94 | (null) |  3 | 
| ZOMV3-94 | (null) |  1 | 
| ZOMV3-94 | (null) |  60 | 
| ZOMV3-94 | (null) |  5 | 
+1

這是我使用的路線 – KaraokeStu 2013-04-30 12:53:21

+0

感謝,但是當我加入TABEL 3 – 2013-05-02 11:25:07

+0

我不能添加其他表(產品DT)所以添加DISCIBTION CULOMN – 2013-05-02 11:26:25