OM订单按月份客户料号合计金额

CREATE  FUNCTION apps.SGDF_NEXT_SUM_AMOUNT(
     V_CUSTOMER_NUMBER IN VARCHAR2
   , V_ITEM  IN VARCHAR2
   , V_CURR  IN VARCHAR2
   , V_MONTH IN VARCHAR2
   )
   
 RETURN NUMBER IS SUM_AMOUNT NUMBER :=0 ;
 
BEGIN

  SELECT
    SUM( case when otnl.NAME like 'LINE 退貨%'
          or otnl.NAME like'LINE 銷貨折讓%'
          or otnl.NAME like'LINE_折讓%'
          or otnl.NAME like'LINE_退貨%'
          or otnl.NAME = 'LINE_模具訂單折讓'
          or otnl.NAME = 'LINE_重工費收入(折讓)'
          or otnl.NAME like'LINE%- 調帳(-)'
       then -(L.ordered_quantity)
       else L.ordered_quantity end  *L.UNIT_SELLING_PRICE ) INTO SUM_AMOUNT
  
      FROM   ONT.OE_ORDER_LINES_ALL L ,
             ONT.OE_ORDER_HEADERS_ALL H,
             INV.MTL_SYSTEM_ITEMS_B MSI,
             ONT.OE_TRANSACTION_TYPES_TL O,
             APPS.RA_CUSTOMERS RC,
             ONT.OE_TRANSACTION_TYPES_TL OTNL
            
     WHERE     H.HEADER_ID = L.HEADER_ID
           AND NVL(L.CANCELLED_FLAG,'N')<>'Y'
           AND NVL(H.CANCELLED_FLAG,'N')<>'Y'
           AND O.TRANSACTION_TYPE_ID IN (2855,2859,2873,2875)
       --    AND (O.NAME LIKE 'SGD DG%' OR O.NAME LIKE 'SGD TW%MST%')
            AND L.INVENTORY_ITEM_ID = MSI.INVENTORY_ITEM_ID
            AND H.ORDER_TYPE_ID = O.TRANSACTION_TYPE_ID
            AND MSI.ORGANIZATION_ID = 425
           
            AND H.FLOW_STATUS_CODE<>'CANCELLED'
            AND L.FLOW_STATUS_CODE<>'CANCELLED'
            AND L.CANCELLED_FLAG !='Y'
            AND H.SOLD_TO_ORG_ID = RC.CUSTOMER_ID
            AND L.line_type_id = otnl.transaction_type_id(+)
           
            AND TO_CHAR(H.CREATION_DATE,'YYYY-MM')=V_MONTH -- DECODE( V_MONTH,'未下單','',SUBSTR(V_MONTH,1,7) )
            AND H.TRANSACTIONAL_CURR_CODE= V_CURR 
            AND MSI.SEGMENT1= V_ITEM
            AND RC.CUSTOMER_NUMBER = V_CUSTOMER_NUMBER ;
           
   RETURN(SUM_AMOUNT);
  
   EXCEPTION
     WHEN NO_DATA_FOUND THEN
        RETURN '0';
  
END SGDF_NEXT_SUM_AMOUNT ;
请使用浏览器的分享功能分享到微信等