【发布时间】:2022-01-21 21:02:52
【问题描述】:
我正在编写一个查询,我想选择 PartNo、Description、Model 和 AvaQty > 从一个视图。
但在我们的系统中,对于相同的部件号,描述或型号略有不同。
例如,A 部分有 description 像 This is Part A 并且还有另一条 description 记录像 This是 Aa 部分
在我的查询中,我想删除重复项并对 Ava 数量求和并显示。但由于相同零件编号的描述和型号不同,我在最终报告中得到了更多重复值。
这是我当前的代码。
SELECT DISTINCT PART_NO as PartNo,
ad.INVENTORY_PART_API.Get_Description(contract,part_no) as PartDescription,
ad.Inventory_Product_Family_API.Get_Description(ad.Inventory_Part_API.Get_Part_Product_Family(CONTRACT, PART_NO)) as PartModel,
SUM( QTY_ONHAND - QTY_RESERVED) as AvaQty
FROM ad.INVENTORY_PART_IN_STOCK_UIV
WHERE CONTRACT is not null and
upper(ad.Sales_Part_API.Get_Catalog_Group(CONTRACT, PART_NO)) = upper('SPAM')OR
upper(ad.Sales_Part_API.Get_Catalog_Group(CONTRACT, PART_NO)) = upper('OTOA')
GROUP BY PART_NO,
ad.INVENTORY_PART_API.Get_Description(contract,part_no),
ad.Inventory_Product_Family_API.Get_Description(ad.Inventory_Part_API.Get_Part_Product_Family(CONTRACT, PART_NO))
所以我得到了 14623 条记录,其中 46 条记录重复,因为描述或模型彼此不同。那么有什么方法可以在不复制的情况下获得它?
我试过没有选择描述和型号。仅选择 PartNo 和 Qty。然后记录没有重复记录。需要知道是否有任何方法可以选择 PartNo,然后从重复值第一个记录或某事和数量的总和中分配描述和模型。谢谢
【问题讨论】:
-
顺便说一下,这是 Oracle SQL,而不是编程语言 PL/SQL。
标签: sql oracle greatest-n-per-group