我设法通过更多选择和循环来进行选择。4张表(最后一张仅用于收集所有数据)
但现在我正在考虑一种方法,只需一个选择语句即可选择我需要的所有字段。这是巨大的选择:)
SELECT vbak~vbeln vbak~audat
tvakt~bezei
vbap~posnr vbap~matnr vbap~kwmeng vbap~vrkme
lips~vbeln lips~posnr lips~werks lips~lfimg
vbfa~vbtyp_n
FROM vbak JOIN vbap ON vbak~vbeln = vbap~vbeln
JOIN tvakt ON vbak~auart = tvakt~auart
LEFT JOIN vbfa ON vbfa~vbelv = vbak~vbeln AND vbfa~posnv = vbap~posnr
JOIN lips ON vbfa~vbeln = lips~vbeln AND vbfa~posnn = lips~posnr
INTO TABLE gt_salord
WHERE tvakt~spras = 'EN' AND
vbak~vbeln IN s_vbeln AND
vbak~audat IN s_audat.
问题是这行不通。当我尝试激活它时会抛出此错误:“无法与“VBAP~POSNR”进行比较。使用 LEFT OUTER JOIN 最多可以将一个表与另一个表连接“如果我不使用 LEFT JOIN 而只加入它工作,但我没有得到我想要的所有东西。我需要得到所有的销售订单,即使他们没有分配交货订单。有没有办法做到这一点,还是我真的必须拆分我的选择?