stanleycia

Untitled

Oct 13th, 2025 (edited)
182
0
350 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 7.82 KB | None | 0 0
  1. SELECT
  2.                         B.CUST_CODE
  3.                         , A.CUST_NAME
  4.                         ,CASE
  5.                             WHEN B.CUST_CODE = F.CUST_CODE_INVOICE THEN ''
  6.                             ELSE F.CUST_CODE_INVOICE
  7.                          END CUST_CODE_INVOICE
  8.                          ,CUSTGROUP_NAME
  9.                          ,A.ZONE_GROUP_CODE
  10.                          ,I.ZONE_GROUP_NAME
  11.                          
  12.                          ,NVL (ORD_CUST_CODE, '-') ORD_CUST_CODE
  13.                          ,NVL (ORD_CUST_NAME, '-') ORD_CUST_NAME
  14.                          ,SEMENT_TYPE
  15.                          ,NVL (ORD_SALESMAN_CODE, '-') ORD_SALESMAN_CODE
  16.                          ,NVL (ORD_SALESMAN_NAME, '-') ORD_SALESMAN_NAME
  17.                          ,NVL (X.AR_CUST_CODE, '-') AR_CUST_CODE
  18.                          ,NVL(G.CREDIT_LIMIT,0) CREDIT_LIMIT
  19.                          ,B.INVOICE_NO
  20.                          ,F.TAX_NO
  21.                          --|| TO_CHAR (D.TRX_DATE, 'DD-MON-YYYY')
  22.                          ,F.INVOICE_DATE --TRXDEATE
  23.                          ,B.DUE_DATE
  24.                          ,B.SAMOUNT_TOT
  25.                          ,B.SAMOUNT_CURR
  26.                          ,B.SAMOUNT_PAST1
  27.                          ,B.SAMOUNT_PAST2
  28.                          ,B.SAMOUNT_PAST3
  29.                          ,B.SAMOUNT_PAST4
  30.                          ,B.SAMOUNT_PAST5
  31.                          ,REGEXP_REPLACE (ADDRESS, '[[:space:]]+', CHR (32)) ADDRESS
  32.                          ,DELIVERY_REMARKS
  33.                          ,LAST_DELIVERY_DATE
  34.                
  35.                          ,F.DEST_CODE
  36.                          ,DEST_NAME
  37.                          ,F.LAST_COLLECTION_NO
  38.                          ,F.LAST_COLLECTION_DATE
  39.                          ,F.DIST_CODE
  40.      
  41.                          --,X.AR_USER_CODE
  42.                          ,F.LAST_COLLECTION_REMARK
  43.                          ,F.LAST_COLLECTION_REMARK2
  44.                          ,CASE
  45.                             WHEN B.CUST_CODE = F.CUST_CODE_INVOICE THEN ''
  46.                             ELSE X.CUST_NAME
  47.                          END  CUST_CODE_INVOICE_NAME
  48.                          ,F.ZONE_GROUP_CODE_INVOICE
  49.                          ,Z.ZONE_GROUP_NAME ZONE_GROUP_CODE_INVOICE_NAME
  50.                          ,F.AR_USER_CODE
  51.                          ,DUE_DATE TGLPARAM, LIST_TRANSPORTER  ,B.INVOICE_NO2,A.CUST_CODE_2
  52.                                    ,XX.WH_CODE, XX.WH_NAME ,XX.INVOICE_QTY,F.INVOICE_AMOUNT
  53.                                    FROM OORD_CUSTOMER_MASTER A, (SELECT CUST_CODE,INVOICE_NO ,INVOICE_NO2, DUE_DATE, ZONE_GROUP_CODE AS ZONE_GROUP_CODE_INVOICE, SUM(AMOUNT) SAMOUNT_TOT, SUM(CASE WHEN TO_DATE('13-OCT-2025','DD-MON-YYYY') - DUE_DATE <= 0  THEN AMOUNT ELSE 0 END) AS SAMOUNT_CURR, SUM(CASE WHEN TO_DATE('13-OCT-2025','DD-MON-YYYY') - DUE_DATE BETWEEN  1 AND 10 THEN AMOUNT ELSE 0 END) AS SAMOUNT_PAST1, SUM(CASE WHEN TO_DATE('13-OCT-2025','DD-MON-YYYY') - DUE_DATE BETWEEN 11 AND 30 THEN AMOUNT ELSE 0 END) AS SAMOUNT_PAST2, SUM(CASE WHEN TO_DATE('13-OCT-2025','DD-MON-YYYY') - DUE_DATE BETWEEN 31 AND 60 THEN AMOUNT ELSE 0 END) AS SAMOUNT_PAST3, SUM(CASE WHEN TO_DATE('13-OCT-2025','DD-MON-YYYY') - DUE_DATE BETWEEN 61 AND 90 THEN AMOUNT ELSE 0 END) AS SAMOUNT_PAST4, SUM(CASE WHEN TO_DATE('13-OCT-2025','DD-MON-YYYY') - DUE_DATE > 90 THEN AMOUNT ELSE 0 END) AS SAMOUNT_PAST5 FROM OV_PIUTANG WHERE TRX_DATE <= TO_DATE('13-OCT-2025','DD-MON-YY') AND   BOOK_CODE='E8'   AND SUBSTR(INVOICE_NO2,1,3)<>'AFC' AND (('G'='N' OR 'G'='M' OR 'G'='G' OR 'G'='C')  OR  ('G'='P' AND INSTR('3500;3600;3700;3800;3009',ZONE_GROUP_CODE)>0)) GROUP BY CUST_CODE,INVOICE_NO,DUE_DATE,INVOICE_NO2, ZONE_GROUP_CODE ) B,  ( SELECT DISTINCT
  54.                          A.INVOICE_NO,
  55.                          A.INVOICE_NO_PRINT,
  56.                          A.ORD_CUST_CODE,
  57.                          A.ORD_CUST_NAME,
  58.                          A.ORD_SALESMAN_CODE,
  59.                          A.ORD_SALESMAN_NAME,
  60.                          A.INVOICE_DATE,
  61.                          NVL (B.CUST_ADDRESS1 || B.CUST_ADDRESS2, 'COMBINED') AS ADDRESS,
  62.                          NVL (REPLACE (A.DELIVERY_REMARKS, ';', ','), '-') AS DELIVERY_REMARKS,
  63.                          LAST_DELIVERY_DATE,
  64.                          A.LIST_TRANSPORTER,
  65.                          C.DEST_CODE,
  66.                          DEST_NAME,
  67.                          A.AR_USER_CODE || '-' || D.USER_NAME AR_USER_CODE,
  68.                          NVL (A.CUST_CODE_INVOICE, A.CUST_CODE) CUST_CODE_INVOICE,
  69.                          F1.LAST_COLLECTION_NO,
  70.                          F1.LAST_COLLECTION_DATE,
  71.                          F1.LAST_COLLECTION_REMARK ,
  72.                          A.ORD_PRODUCT_NAME   AS SEMENT_TYPE,
  73.                          A.DIST_CODE,
  74.                          A.INVOICE_DUEDATE,
  75.                          A.DELIVERY_DUE_DATE,
  76.                          A.TAX_NO
  77.                          ,A.ZONE_GROUP_CODE ZONE_GROUP_CODE_INVOICE
  78.                          ,F1.LAST_COLLECTION_REMARK2
  79.                          ,A.AMOUNT INVOICE_AMOUNT
  80.                      FROM OARR_INVOICE_BALANCE A,
  81.                      OORD_CUSTOMER_MASTER B,
  82.                      OORD_DESTINATION_MASTER C,
  83.                      OSYS_USER_MASTER D
  84.                      , (SELECT * FROM OARR_COLLECTION_INVOICE WHERE BOOK_CODE='E8')  F1 WHERE   A.INVOICE_NO = F1.INVOICE_NO(+)
  85.                      AND A.INVOICE_STATUS = 'A' AND   A.ORD_CUST_CODE = B.CUST_CODE(+)
  86.                      AND B.DEST_CODE = C.DEST_CODE(+)
  87.                      AND A.AR_USER_CODE = D.USER_CODE(+)
  88.                      AND A.BOOK_CODE='E8'  
  89.                      AND (('G'='N' OR 'G'='M' OR 'G'='G' OR 'G'='C')  OR  ('G'='P' AND INSTR('3500;3600;3700;3800;3009',A.ZONE_GROUP_CODE)>0))
  90.                  ) F  ,OORD_CREDIT_LIMIT_MASTER G, OORD_CUSTGROUP_MASTER H, OORD_ZONE_GROUP_MASTER I , OORD_CUSTOMER_MASTER X , OORD_ZONE_GROUP_MASTER Z , (
  91.                         SELECT DISTINCT DATA.INVOICE_NO, DATA.INVOICE_DATE, DATA.CUST_CODE, LISTAGG (DATA.WH_CODE, ',') WITHIN GROUP (ORDER BY DATA.WH_CODE) AS WH_CODE, LISTAGG (DATA.WH_NAME, ',') WITHIN GROUP (ORDER BY DATA.WH_CODE) AS WH_NAME,SUM(INVOICE_QTY) INVOICE_QTY
  92.                         FROM (
  93.                                 SELECT DISTINCT AA.INVOICE_NO, AA.INVOICE_DATE, AA.CUST_CODE, BB.WH_CODE, CC.WH_NAME,SUM(AA.INVOICE_QTY) INVOICE_QTY
  94.                                 FROM OARR_INVOICE_TRX AA, OORD_SDO_TRX BB, OORD_WAREHOUSE_MASTER CC
  95.                                 WHERE AA.SDO_ID = BB.SDO_ID(+) AND BB.WH_CODE = CC.WH_CODE(+) AND AA.FLAG_DELETED = 'N'
  96.                                 AND INVOICE_STATUS = 'A'
  97.                                 AND BOOK_CODE = 'E8'
  98.                                 AND (('G' = 'N' OR 'G' = 'M' OR 'G' = 'G' OR 'G' = 'C') OR (    'G' = 'P'
  99.                                            AND INSTR ('3500;3600;3700;3800;3009',AA.ZONE_GROUP_CODE) > 0))
  100.                                 GROUP BY AA.INVOICE_NO, AA.INVOICE_DATE, AA.CUST_CODE, BB.WH_CODE, CC.WH_NAME
  101.                              ) DATA
  102.                        GROUP BY DATA.INVOICE_NO, DATA.INVOICE_DATE, DATA.CUST_CODE
  103.                  ) XX       WHERE
  104.                      A.CUST_CODE = B.CUST_CODE
  105.                      AND A.ZONE_GROUP_CODE = I.ZONE_GROUP_CODE(+)
  106.                      AND B.SAMOUNT_TOT <> 0
  107.                      AND B.INVOICE_NO2 = F.INVOICE_NO(+)      
  108.                      AND F.CUST_CODE_INVOICE = X.CUST_CODE AND NVL(X.AR_CUST_CODE, X.CUST_CODE) = G.AR_CUST_CODE(+)
  109.                      AND A.CUSTGROUP_CODE = H.CUSTGROUP_CODE
  110.                      AND F.ZONE_GROUP_CODE_INVOICE = Z.ZONE_GROUP_CODE(+)
  111.                      AND F.INVOICE_NO = XX.INVOICE_NO AND F.INVOICE_DATE = XX.INVOICE_DATE AND A.CUST_CODE = XX.CUST_CODE
  112.                      
  113.                  ORDER BY A.CUST_CODE,B.DUE_DATE,B.INVOICE_NO  
Tags: sql
Advertisement
Add Comment
Please, Sign In to add comment