【发布时间】:2019-05-06 18:22:04
【问题描述】:
我正在尝试显示所有销售订单,如果有的话,还会显示交货单。我有一个显示所有订单的查询,但无论我如何将它加入到下一个表中,我都会继续获得只有带有交货单的订单的结果。如果没有记录在案,我希望 NULL 出现在交货单上。
我尝试了左、右和内连接,它们都返回相同数量的结果,这让我感到困惑。我以为我在今天之前对join有所了解。
这部分显示存在多少销售订单。我希望所有结果都出现在下一个查询中
select t0.docnum SalesOrder, t1.itemcode, t1.linenum rdr1line
from ordr t0 inner join rdr1 t1 on t1.docentry = t0.docentry
where t0.CANCELED = 'N';
这部分显示有多少销售订单有交货单,但不包括没有交货单的订单。
select t0.docnum SalesOrder, t1.itemcode, t2.docnum DelivNoteNum, t3.baseline inv1base, t1.linenum rdr1line, t3.linenum dln1line
from ordr t0 inner join rdr1 t1 on t1.docentry = t0.docentry
right outer join odln t2 on t2.docentry = t1.trgetentry
right outer join dln1 t3 on t3.docentry = t2.docentry and t3.baseline = t1.linenum and t3.ItemCode = t1.ItemCode
where t0.CANCELED = 'N' and t2.canceled = 'N';
预期结果应该是每个表中相同的行数。实际结果仅与交货单一起订购。
【问题讨论】:
标签: sql crystal-reports sapb1