复杂计数:计算聚合机会

时间:2018-08-21 16:30:26

标签: sql oracle11g inventory-management logistics

我正在努力获取报告所需的输出。我试图展示我可以组合哪些产品(LPN),以释放仓库中的空间,以及其中有多少此类机会。下面的代码提取了我需要的所有数据,但我似乎无法弄清楚如何总结合并的机会。

WITH ITEM AS
(
  SELECT IC.ITEM_NAME,COUNT(*) 
  FROM PARCEL_ID L 
  JOIN PARCEL_DETAIL LD ON L.LPN_ID=LD.LPN_ID
  JOIN LOCN LH ON LH.LOCN_ID=L.CURR_SUB_LOCN_ID AND LH.LOCN_CLASS='R' AND 
LH.PULL_ZONE='RSV'
  JOIN RESV_LOCN RLH ON RLH.LOCN_ID=L.CURR_SUB_LOCN_ID
  JOIN ITEM_C IC ON IC.ITEM_ID=LD.ITEM_ID
  WHERE L.LPN_FACILITY_STATUS='30' AND LD.SIZE_VALUE <'30' GROUP BY 
IC.ITEM_NAME HAVING COUNT(*)>'1'
  )
SELECT L.TC_LPN_ID,LD.SIZE_VALUE,LH.DSP_LOCN,L.ACTUAL_VOLUME,L.WEIGHT, 
IC.ITEM_NAME,RLH.MAX_VOL,RLH.MAX_WT 
FROM PARCEL L 
JOIN PARCEL_DETAIL LD ON L.LPN_ID=LD.LPN_ID
JOIN LOCN LH ON LH.LOCN_ID=L.CURR_SUB_LOCN_ID AND LH.LOCN_CLASS='R' AND 
LH.PULL_ZONE ='RSV'
JOIN RESV_LOCN RLH ON RLH.LOCN_ID=L.CURR_SUB_LOCN_ID
JOIN ITEM_C IC ON IC.ITEM_ID=LD.ITEM_ID
WHERE L.LPN_FACILITY_STATUS='30' AND LD.SIZE_VALUE <'30' AND IC.ITEM_NAME IN 
(SELECT ITEM_NAME FROM ITEM)

返回的数据是一个列表,显示存储在多个备用位置并需要合并的任何产品。如下图所示。

        LPN|Qty|Loc|Volume|Weight|Item Name| Max Vol | Max Wt
         1 | 12|1  |  25  | 15   | ABC123  |   500   |   250
         2 | 25|2  |  300 | 150  | ABC123  |   500   |   250
         3 | 25|3  |  125 | 100  | DEF123  |   750   |   250
         4 | 35|4  |  350 | 250  | DEF123  |   750   |   350

有没有一种方法可以总结储备位置合并的机会数量?在上面的示例中,有2个商机,因为我们有2个商品名称,如果组合在一起,则两个位置的最大体积或最大重量都不会超过。第二个问题是,可能会有多个机会合并同一商品名称。如何使用当前查询或作为单独查询引用当前结果的结果来实现此目的(我将其添加到Cognos报表中,以便可以使用单独的对象)。

如果不是这样的建议场所,我深表歉意,但是,我很乐意为您提供任何指导。

谢谢。

0 个答案:

没有答案