我的目标是在 S/4 hana 系统上编写一个 SQL 查询来获取未结销售订单的列表。
未结销售订单是已部分发货或根本未发货的订单。
我有两个表 - 销售订单表和已发货订单表
销售订单表 - 表 1
VBELN - 订单号 - 主键
Ord_qty - 订单数量
表中的值
VBELN ORD_QTY
1 10
2 20
3 30
已发货订单表 - 表 2
SHIP_ORD - 货件编号 - 主键
VBELN - 订单号 - 表 1 中的外键
Ship_qty - 发货数量
表 2 中的值
SHIP_ORD VBELN SHIP_QTY
100 1 4
200 1 5
300 2 20
我写了这个查询。这让我回来了
VBELN ORD_QTY SHIP_QTY
1 10 9
但我希望它还为尚未发货的订单返回另一条记录 3 30 0。
这是我的查询
获取未结订单,即未发货的订单和未完全发货的订单
SELECT a~vbeln,sum( b~ship_qty ) as ship_qty, sum( ORD_QTY ) as ord_type
INTO TABLE @DATA(LT_DATA)
from zvic_order as a
left outer join zvic_ship as b
on a~vbeln = b~vbeln
where b~ship_qty is not null or
b~ship_qty is null
GROUP BY A~VBELN
HAVING sum( ord_qty ) > sum( b~ship_qty ) .
我认为这是从发货表中消除 NULL 条目的条件,但我不知道编写此查询并获得所需结果的任何其他方式。
PS:我可以在没有条件的情况下获取记录,然后循环记录并过滤掉,但我的目标是直接从查询中获取结果。