2026年9月15日 星期二

V60202- 件號(#50-YCH13MS-220)-庫房(17#)-儲存位置空白-領用 – nvl(SP,’#’)

 目的: V60202- 件號(#50-YCH13MS-220)-庫房(17#)-儲存位置空白-領用 – nvl(SP,’#’)

處理說明: 1>SQL
                       //STEP1>SQL先取得 入庫數量(QTY) , 領用量(QTY_)
                       //STEP2>再取得現有庫存量(TAL_QTY) = 入庫數量(QTY) - 領用量(QTY_)

                   2>因為 AMM_COMPQTY 可能無資料(null), 
                        所以必需  nvl(SELECT SUM(QTY) FROM  AMM_COMPQTY ),0)
                                nvl((SELECT  SUM(QTY)
                                        FROM     AMM_COMPQTY
                                        WHERE  EFF = 'Y'
                                         AND       CPNO = A.CPNO
                                        AND        MATNR = A.MATNR
                                        AND        WH = A.WH
                                       AND         nvl(SP,'#') = nvl(A.SP,'#')), 0)
                  3>AND   nvl(SP,'#') = nvl(A.SP,'#')
                      -->  若 A.SP 空白
                             AND   nvl(SP,'') = nvl(A.SP,'')  --> 無法挑選該資料, 所以改成 nvl(SP,'#')

1
1>*. cs
//STEP1>SQL先取得  入庫數量(QTY) , 領用量(QTY_)
//STEP2>再取得現有庫存量(TAL_QTY) = 入庫數量(QTY) - 領用量(QTY_)
SELECT SUM(QTY - QTY_) as TAL_QTY
FROM ( 
              SELECT   MATNR, WH, SP, QTY, 
                                nvl((SELECT  SUM(QTY)
                                        FROM     AMM_COMPQTY
                                        WHERE  EFF = 'Y'
                                         AND       CPNO = A.CPNO
                                        AND        MATNR = A.MATNR
                                        AND        WH = A.WH
                                       AND         nvl(SP,'#') = nvl(A.SP,'#')), 0) as QTY_
              FROM      AMM_COMP A
              WHERE   1 = 1
              AND         MATNR = '#50-YCH20-120'
              AND         WH ='17#'
              AND SP='LOC1' 
          ) ;









;

沒有留言:

張貼留言