Sql server h如何在示例中加入true?

Sql server h如何在示例中加入true?,sql-server,sql-server-2008,join,outer-join,self-join,Sql Server,Sql Server 2008,Join,Outer Join,Self Join,我的以下查询没有给出预期结果: 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

我的以下查询没有给出预期结果:

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
select itemno,
  outgoing,
  null as incoming
from invoice
union all
select itemno,
  null,
  incoming
from storeage;
但我想得到以下真正的结果:

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 

我怎样才能得到这个结果

您可以使用
UNION ALL
而不是
JOIN
来获得结果:

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
select itemno,
  outgoing,
  null as incoming
from invoice
union all
select itemno,
  null,
  incoming
from storeage;
看。这就产生了一个结果:

|   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 |

您可以使用
UNION ALL
而不是
JOIN
来获得结果:

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
select itemno,
  outgoing,
  null as incoming
from invoice
union all
select itemno,
  null,
  incoming
from storeage;
看。这就产生了一个结果:

|   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 |

这与我使用的路线相同,谢谢,但当我加入表3时,我无法添加另一个表(产品DT),所以请添加描述CULOMN@BelalIt请发布一个关于添加新表的详细信息的新问题。我想使用另一个表ZOMV3-94 4 ZOOM Lkyths这与我使用的路线相同谢谢,但当我加入表3时,我无法添加另一个表(产品DT.)因此添加描述CULOMN@BelalIt请发布一个新问题,详细说明如何添加新表。我想使用另一个表ZOMV3-94 4 ZOOM Lkywy为什么要将“表”和“列”名称“全部”放在“引号”中?似乎没有很好的理由-除非您的意图是使代码极难阅读。为什么要将“表”和“列”名称“全部”放在“引号”中?似乎没有很好的理由-除非您的意图是使代码极难阅读。