我希望这不会违反任何规则(我是新手,是的,我确实检查了常见问题解答)。
但我有以下代码
SELECT DISTINCT PO_NUMBER, PO_TRACKING_NO, SUPPLIER, MIN(PO_QUANTITY),
SUM(SHIPPED_WT), PO_SHIPMENT_TO
FROM VW_TRAFFIC_PO_SIDE
WHERE SYSDATE > PO_SHIPMENT_TO AND
(PO_QUANTITY > SHIPPED_WT OR PO_TRACKING_NO IS NULL)
GROUP BY PO_NUMBER, PO_TRACKING_NO, SUPPLIER, PO_SHIPMENT_TO
HAVING PO_QUANTITY > SUM(SHIPPED_WT)
假设执行以下操作:每个跟踪编号显示 1 个 PO#,[这是不同的,它是正确的,我能够成功编译代码]...下一步,这是棘手的部分(这是SUM、MIN、GROUP BY 和 HAVING 部分):我需要组合任何 PO_NUMBER(显示的)的 SHIPPED_WT,如果它小于 PO_Quantity,则显示该组合数字
where语句也是正确的,因为我编译成功了,只是当我添加了上面的部分时,我遇到了麻烦。
编辑:上面的代码现在编译(感谢下面的答案)
但是,我的逻辑是错误的,它没有做我希望它做的事情。它正确做的一件事是用 1 个 PO_TRACKING_NO 抓取 1 个 PO_NUMBER(只要 PO_tracking_no 不同,就可以有重复的 po_numbers,并且只要号码不同就可以有重复追踪)
编辑:下面是相关列的样子,我将解释它有什么问题(以及我试图对修改后的代码做什么
PO_NUMBER PO_TRACKING_NO MIN(PO_QUANTITY) SUM(SHIPPED_WT)
123 C100 1000 750
123 C101 1000 250
该代码假设采用这样的记录,并将 SHIPPED_WT 组合成一个数字(1000),并且因为该新数字是 PO_QUANTITY 的=,所以它不应该出现在查询中......此外,PO_TRACKING_NO 的 WHERE ISNULL 不起作用(应显示该字段中具有空值的所有记录,假设它不是 PO_NUMBER 和 PO_TRACKING_NO 的重复项)