首页 > 解决方案 > 加入发货后订单数量翻倍

问题描述

我们可以为单个订单项目进行多次交付。因此,当我将 Order-Item 与 Delivery 一起加入时,我得到了多行。现在,如果我想在 Order Item 级别(不包括 Delivery-Item)获取订单数量,我会得到错误的聚合。我理解为什么查询会这样,但不确定如何在每个可能的向下钻取级别使聚合正确。

订单表

交付表

加入Order and Deliv后

结果在订单 ID、项目、产品级别是正确的。

标签: sqlhanasql-scripts

解决方案


您提供的数据有问题

订单 10001 项目 30 的产品是一个表中的 P2 和另一个表中的 P3

您能否以以下格式提供您的示例数据和表结构,以便其他人可以轻松帮助您

create column table T_ORDER (
ORD_ID int,
ORD_ITM int,
PROD varchar(5),
ORD_QTY int
);

create column table T_DELIV (
DELIV_ID int,
DELIV_ITM int,
ORD_ID int,
ORD_ITM int,
DELIV_QTY int,
PROD varchar(5)
);

insert into T_ORDER values (10001,10,'P1',50);
insert into T_ORDER values (10001,20,'P1',60);
insert into T_ORDER values (10001,30,'P2',40);
insert into T_ORDER values (10001,40,'P3',30);
insert into T_ORDER values (10002,50,'P4',20);


insert into T_DELIV values (50001,10,10001,10,20,'P1');
insert into T_DELIV values (50001,20,10001,10,30,'P1');
insert into T_DELIV values (50002,10,10001,20,60,'P2');
insert into T_DELIV values (50002,20,10001,30,30,'P3');
insert into T_DELIV values (50003,10,10001,40,10,'P3');
insert into T_DELIV values (50003,20,10001,40,15,'P3');

推荐阅读