IC AND IC_CF
2017-06-26 21:12
387 查看
IC内部往来,包含应收应付,预收预付等科目。需要重分类。
IC_CF 内部交易,包含损益科目。加载目标:DATI_SADI_IC
SAP :
应收应付:WITH T600ARAP AS ( SELECT ({IN-YEARMONTH}) YEARMONTH,SUBSTR({IN-YEARMONTH},1,4)||'ACT' SCENARIO,SUBSTR({IN-YEARMONTH},5,2) ZMONTH, BUKRS,HKONT,'ZZCC' PRCTR,'ZZPL' RBUSA,CUSVEN RASSC,CATEG,WAERS,DMBTR,WRBTR,E.COD_VALUTA AS LCURR, (CASE WHEN SUM(DMBTR) OVER (PARTITION BY BUKRS,SUBSTR(HKONT,1,4),CUSVEN,CATEG) > 0 THEN 'S' WHEN SUM(DMBTR) OVER (PARTITION BY BUKRS,SUBSTR(HKONT,1,4),CUSVEN,CATEG) < 0 THEN 'H' ELSE 'E' END) SHMARK FROM ( SELECT BUKRS,HKONT,CUSVEN,CATEG,WAERS,SUM(DMBTR) DMBTR,SUM(WRBTR) WRBTR,CVMARK FROM ( SELECT BUKRS,HKONT,B.ELEDIM_OUTPUT1 CUSVEN,CATEG,WAERS,DMBTR,WRBTR,CVMARK FROM ( SELECT BUKRS,HKONT,CUSVEN,CATEG,WAERS,SUM(DMBTR) DMBTR,SUM(WRBTR) WRBTR ,CVMARK FROM ( SELECT BUKRS,HKONT,KUNNR CUSVEN,WAERS,'C' AS CVMARK, '$AMOUNT' AS CATEG,(CASE SHKZG WHEN 'S' THEN DMBTR ELSE -1*DMBTR END) DMBTR,(CASE SHKZG WHEN 'S' THEN WRBTR ELSE -1*WRBTR END) WRBTR FROM ODS.ODSS600_BSID@FMSLK t WHERE TO_CHAR(BUDAT,'YYYYMM') <= ({IN-YEARMONTH}) AND BUKRS IN ({IN-ENTITY}) AND HKONT IN (SELECT DISTINCT SAKNR FROM ODS.ODSS600_SKB1@FMSLK WHERE (SAKNR LIKE '1%' OR SAKNR LIKE '2%') AND MITKZ IN ('D','K')) UNION ALL SELECT BUKRS,HKONT,KUNNR CUSVEN,WAERS, 'C' AS CVMARK, '$AMOUNT' AS CATEG,(CASE SHKZG WHEN 'S' THEN DMBTR ELSE -1*DMBTR END) DMBTR,(CASE SHKZG WHEN 'S' THEN WRBTR ELSE -1*WRBTR END) WRBTR FROM ODS.ODSS600_BSAD@FMSLK t WHERE TO_CHAR(AUGDT,'YYYYMM') > ({IN-YEARMONTH}) AND TO_CHAR(BUDAT,'YYYYMM') <= ({IN-YEARMONTH}) AND BUKRS IN ({IN-ENTITY}) AND HKONT IN (SELECT DISTINCT SAKNR FROM ODS.ODSS600_SKB1@FMSLK WHERE (SAKNR LIKE '1%' OR SAKNR LIKE '2%') AND MITKZ IN ('D','K')) UNION ALL SELECT BUKRS,HKONT,LIFNR CUSVEN,WAERS, 'V' AS CVMARK, '$AMOUNT' AS CATEG,(CASE SHKZG WHEN 'S' THEN DMBTR ELSE -1*DMBTR END) DMBTR,(CASE SHKZG WHEN 'S' THEN WRBTR ELSE -1*WRBTR END) WRBTR FROM ODS.ODSS600_BSIK@FMSLK t WHERE TO_CHAR(BUDAT,'YYYYMM') <= ({IN-YEARMONTH}) AND BUKRS IN ({IN-ENTITY}) AND HKONT IN (SELECT DISTINCT SAKNR FROM ODS.ODSS600_SKB1@FMSLK WHERE (SAKNR LIKE '1%' OR SAKNR LIKE '2%') AND MITKZ IN ('D','K')) UNION ALL SELECT BUKRS,HKONT,LIFNR CUSVEN,WAERS,'V' AS CVMARK, '$AMOUNT' AS CATEG,(CASE SHKZG WHEN 'S' THEN DMBTR ELSE -1*DMBTR END) DMBTR,(CASE SHKZG WHEN 'S' THEN WRBTR ELSE -1*WRBTR END) WRBTR FROM ODS.ODSS600_BSAK@FMSLK t WHERE TO_CHAR(AUGDT,'YYYYMM') > ({IN-YEARMONTH}) AND TO_CHAR(BUDAT,'YYYYMM') <= ({IN-YEARMONTH}) AND BUKRS IN ({IN-ENTITY}) AND HKONT IN (SELECT DISTINCT SAKNR FROM ODS.ODSS600_SKB1@FMSLK WHERE (SAKNR LIKE '1%' OR SAKNR LIKE '2%') AND MITKZ IN ('D','K')) ) GROUP BY BUKRS,HKONT,CUSVEN,CATEG,WAERS,CVMARK HAVING SUM(DMBTR) <> 0 OR SUM(WRBTR) <> 0 ) A INNER JOIN (SELECT ELEDIM_INPUT1,ELEDIM_INPUT2,ELEDIM_OUTPUT1 FROM MAP_REGOLA_TAB_ELEMENTO WHERE COD_MAPPATURA = 'HI_DATA_IC' AND COD_REGOLA_TAB = 'MAP_CUSVEN_ENTITY_600') B ON A.CUSVEN = B.ELEDIM_INPUT1 AND A.CVMARK=B.ELEDIM_INPUT2 WHERE B.ELEDIM_OUTPUT1 IS NOT NULL AND ELEDIM_INPUT2 IS NOT NULL ) GROUP BY BUKRS,HKONT,CUSVEN,CATEG,WAERS,CVMARK HAVING SUM(DMBTR) <> 0 OR SUM(WRBTR) <> 0 ) T LEFT JOIN (SELECT A.COD_AZIENDA,A.COD_VALUTA FROM AZIENDA A WHERE A.COD_AZIENDA<>'$') E ON T.BUKRS=E.COD_AZIENDA ) SELECT YEARMONTH,SCENARIO,ZMONTH,BUKRS, (CASE WHEN (HKONT LIKE '1121%' OR HKONT LIKE '1122%') AND SHMARK = 'H' THEN '2203000000' WHEN HKONT LIKE '1221%' AND SHMARK = 'H' THEN '224100A03' WHEN (HKONT LIKE '2201%' OR HKONT LIKE '2202%') AND SHMARK = 'S' THEN '1123000000' WHEN HKONT LIKE '2241%' AND SHMARK = 'S' THEN '122100A03' ELSE HKONT END) AS HKONT,PRCTR,RBUSA,RASSC,CATEG,WAERS,DMBTR,WRBTR,LCURR,SHMARK,'SAP600' AS CLIENT,'WL' NOTE FROM T600ARAP其他业务收入往来:
SELECT * FROM ( SELECT A.GJAHR||'ACT' SCENARIO,SUBSTR({IN-YEARMONTH},5,2) ZMONTH,A.BUKRS,'6051010000' HKONT ,SUM(CASE SHKZG WHEN 'H' THEN -1*A.DMBTR ELSE A.DMBTR END) DMBTR,B.CUSVEN,{IN-YEARMONTH} YEARMONTH,'600' CLIENT,'OTHERS' NOTE FROM (SELECT * FROM ODS.ODSS600_BSEG_M@FMSLK WHERE GJAHR = SUBSTR({IN-YEARMONTH},1,4) AND BKPF_MONAT <= SUBSTR({IN-YEARMONTH},5,2) AND HKONT LIKE '6051%')A INNER JOIN (SELECT GJAHR,BUKRS,BELNR,MAX(ELEDIM_OUTPUT1) CUSVEN FROM (SELECT GJAHR,BUKRS,BELNR,KUNNR FROM ODS.ODSS600_BSID@FMSLK WHERE GJAHR = SUBSTR({IN-YEARMONTH},1,4) AND TO_CHAR(BUDAT,'MM')<= SUBSTR({IN-YEARMONTH},5,2) UNION ALL SELECT GJAHR,BUKRS,BELNR,KUNNR FROM ODS.ODSS600_BSAD@FMSLK WHERE GJAHR = SUBSTR({IN-YEARMONTH},1,4) AND TO_CHAR(BUDAT,'MM')<= SUBSTR({IN-YEARMONTH},5,2))C INNER JOIN (select ELEDIM_INPUT1,ELEDIM_OUTPUT1 from MAP_REGOLA_TAB_ELEMENTO t WHERE COD_MAPPATURA = 'HI_DATA_IC' AND COD_REGOLA_TAB = 'MAP_CUSVEN_ENTITY_600' AND ELEDIM_INPUT2 = 'C')MC ON C.KUNNR = MC.ELEDIM_INPUT1 WHERE ELEDIM_OUTPUT1 IS NOT NULL GROUP BY GJAHR,BUKRS,BELNR)B ON A.GJAHR = B.GJAHR AND A.BUKRS = B.BUKRS AND A.BELNR = B.BELNR GROUP BY A.GJAHR,A.BUKRS,B.CUSVEN ) WHERE BUKRS IN ({IN-ENTITY})内部现金流往来:
SELECT * FROM ( SELECT A.GJAHR||'ACT' SCENARIO,SUBSTR({IN-YEARMONTH},5,2) ZMONTH,A.BUKRS,ZZCASH,'600' CLIENT,'CF' NOTE ,SUM(CASE SHKZG WHEN 'H' THEN -1*A.DMBTR ELSE A.DMBTR END) DMBTR,B.CUSVEN,{IN-YEARMONTH} YEARMONTH FROM (SELECT * FROM ODS.ODSS600_BSEG_CF@FMSLK WHERE GJAHR = SUBSTR({IN-YEARMONTH},1,4) AND BKPF_MONAT <= SUBSTR({IN-YEARMONTH},5,2) AND HKONT LIKE '10%')A INNER JOIN (SELECT GJAHR,BUKRS,BELNR,MAX(ELEDIM_OUTPUT1) CUSVEN FROM (SELECT GJAHR,BUKRS,BELNR,KUNNR FROM ODS.ODSS600_BSID@FMSLK WHERE GJAHR = SUBSTR({IN-YEARMONTH},1,4) AND TO_CHAR(BUDAT,'MM')<= SUBSTR({IN-YEARMONTH},5,2) UNION ALL SELECT GJAHR,BUKRS,BELNR,KUNNR FROM ODS.ODSS600_BSAD@FMSLK WHERE GJAHR = SUBSTR({IN-YEARMONTH},1,4) AND TO_CHAR(BUDAT,'MM')<= SUBSTR({IN-YEARMONTH},5,2))C INNER JOIN (select ELEDIM_INPUT1,ELEDIM_OUTPUT1 from MAP_REGOLA_TAB_ELEMENTO t WHERE COD_MAPPATURA = 'HI_DATA_IC' AND COD_REGOLA_TAB = 'MAP_CUSVEN_ENTITY_600' AND ELEDIM_INPUT2 = 'C')MC ON C.KUNNR = MC.ELEDIM_INPUT1 WHERE ELEDIM_OUTPUT1 IS NOT NULL GROUP BY GJAHR,BUKRS,BELNR)B ON A.GJAHR = B.GJAHR AND A.BUKRS = B.BUKRS AND A.BELNR = B.BELNR GROUP BY A.GJAHR,A.BUKRS,A.ZZCASH,B.CUSVEN UNION ALL SELECT A.GJAHR||'ACT' SCENARIO,SUBSTR({IN-YEARMONTH},5,2) ZMONTH,A.BUKRS,ZZCASH,'600' CLIENT,'CF' NOTE ,SUM(CASE SHKZG WHEN 'H' THEN -1*A.DMBTR ELSE A.DMBTR END) DMBTR,B.CUSVEN,{IN-YEARMONTH} YEARMONTH FROM (SELECT * FROM ODS.ODSS600_BSEG_CF@FMSLK WHERE GJAHR = SUBSTR({IN-YEARMONTH},1,4) AND BKPF_MONAT <= SUBSTR({IN-YEARMONTH},5,2) AND HKONT LIKE '10%')A INNER JOIN (SELECT GJAHR,BUKRS,BELNR,MAX(ELEDIM_OUTPUT1) CUSVEN FROM (SELECT GJAHR,BUKRS,BELNR,LIFNR FROM ODS.ODSS600_BSIK@FMSLK WHERE GJAHR = SUBSTR({IN-YEARMONTH},1,4) AND TO_CHAR(BUDAT,'MM')<= SUBSTR({IN-YEARMONTH},5,2) UNION ALL SELECT GJAHR,BUKRS,BELNR,LIFNR FROM ODS.ODSS600_BSAK@FMSLK WHERE GJAHR = SUBSTR({IN-YEARMONTH},1,4) AND TO_CHAR(BUDAT,'MM')<= SUBSTR({IN-YEARMONTH},5,2))C INNER JOIN (select ELEDIM_INPUT1,ELEDIM_OUTPUT1 from MAP_REGOLA_TAB_ELEMENTO t WHERE COD_MAPPATURA = 'HI_DATA_IC' AND COD_REGOLA_TAB = 'MAP_CUSVEN_ENTITY_600' AND ELEDIM_INPUT2 = 'V')MV ON C.LIFNR = MV.ELEDIM_INPUT1 WHERE ELEDIM_OUTPUT1 IS NOT NULL GROUP BY GJAHR,BUKRS,BELNR)B ON A.GJAHR = B.GJAHR AND A.BUKRS = B.BUKRS AND A.BELNR = B.BELNR GROUP BY A.GJAHR,A.BUKRS,A.ZZCASH,B.CUSVEN ) WHERE BUKRS IN ({IN-ENTITY})
K3:
应收应付+内部交易(主营业务收入+其他业务收入):WITH SS AS ( select * from ODS.ODSTTKD_v_MR_DETAIL@FMSLK where fcurrencyid = 0 AND fdetailid <> 0 ) SELECT * FROM( select YEARMONTH,fyear,fperiod,custcode,custsppname, (CASE WHEN endbalance <0 AND subjcode LIKE '1122%' THEN '2203' WHEN SUBJCODE LIKE '2203%' AND ENDBALANCE <0 THEN '1122' WHEN subjcode LIKE '1221%' and endbalance <0 THEN '2241.01' WHEN SUBJCODE LIKE '2241%' AND ENDBALANCE >0 THEN '1221.02' WHEN SUBJCODE LIKE '2202%' AND ENDBALANCE >0 THEN '1123' WHEN SUBJCODE LIKE '1123%' AND ENDBALANCE <0 THEN '2202' ELSE subjcode END) subjcode,subjlev, companycode,companyname,beginbalance,localdebitamount,localcreditamount, endbalance ,'K3' CLIENT from( select YEARMONTH,fyear,fperiod,custcode,custsppname,subjcode,subjlev,M.ELEDIM_OUTPUT1 companycode, companyname,sum(beginbalance) beginbalance,sum(localdebitamount) localdebitamount,sum(localcreditamount) localcreditamount,sum(endbalance) endbalance,'K3' CLIENT from( select fyear||lpad(cast(fperiod AS VARCHAR(2)),2,'0') YEARMONTH,fyear||'ACT' FYEAR, lpad(cast(fperiod AS VARCHAR(2)),2,'0') fperiod,M.ELEDIM_OUTPUT1 custcode, custsppname,DECODE(SUBSTR(subjcode,1,4),'1122','1122','2202','2202',SUBJCODE) SUBJCODE,subjname,subjlev,companycode,companyname,beginbalance,localdebitamount, localcreditamount,endbalance,'K3' CLIENT from SS v LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_CUSVEN_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_IC' AND M.ELEDIM_INPUT2 = v.custcode where substr(subjcode,1,4) in ('5001','5002','1121','1122','1123','1221','2201','2202','2203','2241') and custsppname is not null AND M.ELEDIM_OUTPUT1 IS NOT NULL ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_BUKRS_K3' AND M.COD_MAPPATURA = 'HI_DATA_GL' AND M.ELEDIM_INPUT2 = S.companycode group by YEARMONTH,fyear,fperiod,custcode,custsppname,subjcode,subjlev, m.ELEDIM_OUTPUT1, companyname ) ) where COMPANYCODE IN ({IN-ENTITY}) AND YEARMONTH IN ({IN-YEARMONTH}) order by fyear,companycode,subjcode,custcode,fperiod
内部现金流往来:
with c1 as ( SELECT * FROM ( SELECT FYEAR||fperiod YEARMONTH, fyear,fperiod,FYEAR||'ACT' SCENARIO,m.ELEDIM_OUTPUT1 companycode, companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT, SUM(famountfor) famountfor,client FROM( SELECT fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT,SUM(famountfor) famountfor, client FROM( select fyear, '01' fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, FAMOUNT,famountfor,'K3' client from ODS.ODSTTKD_V_MR_CASHFLOW@FMSLK where fperiod <= 1 ) GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_CF' AND M.ELEDIM_INPUT2 = S.companycode GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,m.ELEDIM_OUTPUT1 ORDER BY COMPANYCODE ,ITEMNAME ) ), c2 as ( SELECT * FROM ( SELECT FYEAR||fperiod YEARMONTH, fyear,fperiod,FYEAR||'ACT' SCENARIO,m.ELEDIM_OUTPUT1 companycode, companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT, SUM(famountfor) famountfor,client FROM( SELECT fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT,SUM(famountfor) famountfor, client FROM( select fyear, '02' fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, FAMOUNT,famountfor,'K3' client from ODS.ODSTTKD_V_MR_CASHFLOW@FMSLK where fperiod <= 2 ) GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_CF' AND M.ELEDIM_INPUT2 = S.companycode GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,m.ELEDIM_OUTPUT1 ORDER BY COMPANYCODE ,ITEMNAME ) ), c3 as ( SELECT * FROM ( SELECT FYEAR||fperiod YEARMONTH, fyear,fperiod,FYEAR||'ACT' SCENARIO,m.ELEDIM_OUTPUT1 companycode, companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT, SUM(famountfor) famountfor,client FROM( SELECT fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT,SUM(famountfor) famountfor, client FROM( select fyear, '03' fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, FAMOUNT,famountfor,'K3' client from ODS.ODSTTKD_V_MR_CASHFLOW@FMSLK where fperiod <= 3 ) GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_CF' AND M.ELEDIM_INPUT2 = S.companycode GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,m.ELEDIM_OUTPUT1 ORDER BY COMPANYCODE ,ITEMNAME ) ), c4 as ( SELECT * FROM ( SELECT FYEAR||fperiod YEARMONTH, fyear,fperiod,FYEAR||'ACT' SCENARIO,m.ELEDIM_OUTPUT1 companycode, companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT, SUM(famountfor) famountfor,client FROM( SELECT fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT,SUM(famountfor) famountfor, client FROM( select fyear, '04' fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, FAMOUNT,famountfor,'K3' client from ODS.ODSTTKD_V_MR_CASHFLOW@FMSLK where fperiod <=4 ) GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_CF' AND M.ELEDIM_INPUT2 = S.companycode GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,m.ELEDIM_OUTPUT1 ORDER BY COMPANYCODE ,ITEMNAME ) ), c5 as ( SELECT * FROM ( SELECT FYEAR||fperiod YEARMONTH, fyear,fperiod,FYEAR||'ACT' SCENARIO,m.ELEDIM_OUTPUT1 companycode, companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT, SUM(famountfor) famountfor,client FROM( SELECT fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT,SUM(famountfor) famountfor, client FROM( select fyear, '05' fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, FAMOUNT,famountfor,'K3' client from ODS.ODSTTKD_V_MR_CASHFLOW@FMSLK where fperiod <= 5 ) GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_CF' AND M.ELEDIM_INPUT2 = S.companycode GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,m.ELEDIM_OUTPUT1 ORDER BY COMPANYCODE ,ITEMNAME ) ), c6 as ( SELECT * FROM ( SELECT FYEAR||fperiod YEARMONTH, fyear,fperiod,FYEAR||'ACT' SCENARIO,m.ELEDIM_OUTPUT1 companycode, companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT, SUM(famountfor) famountfor,client FROM( SELECT fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT,SUM(famountfor) famountfor, client FROM( select fyear, '06' fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, FAMOUNT,famountfor,'K3' client from ODS.ODSTTKD_V_MR_CASHFLOW@FMSLK where fperiod <= 6 ) GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_CF' AND M.ELEDIM_INPUT2 = S.companycode GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,m.ELEDIM_OUTPUT1 ORDER BY COMPANYCODE ,ITEMNAME ) ), c7 as ( SELECT * FROM ( SELECT FYEAR||fperiod YEARMONTH, fyear,fperiod,FYEAR||'ACT' SCENARIO,m.ELEDIM_OUTPUT1 companycode, companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT, SUM(famountfor) famountfor,client FROM( SELECT fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT,SUM(famountfor) famountfor, client FROM( select fyear, '07' fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, FAMOUNT,famountfor,'K3' client from ODS.ODSTTKD_V_MR_CASHFLOW@FMSLK where fperiod <= 7 ) GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_CF' AND M.ELEDIM_INPUT2 = S.companycode GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,m.ELEDIM_OUTPUT1 ORDER BY COMPANYCODE ,ITEMNAME ) ), c8 as ( SELECT * FROM ( SELECT FYEAR||fperiod YEARMONTH, fyear,fperiod,FYEAR||'ACT' SCENARIO,m.ELEDIM_OUTPUT1 companycode, companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT, SUM(famountfor) famountfor,client FROM( SELECT fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT,SUM(famountfor) famountfor, client FROM( select fyear, '08' fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, FAMOUNT,famountfor,'K3' client from ODS.ODSTTKD_V_MR_CASHFLOW@FMSLK where fperiod <= 8 ) GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_CF' AND M.ELEDIM_INPUT2 = S.companycode GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,m.ELEDIM_OUTPUT1 ORDER BY COMPANYCODE ,ITEMNAME ) ), c9 as ( SELECT * FROM ( SELECT FYEAR||fperiod YEARMONTH, fyear,fperiod,FYEAR||'ACT' SCENARIO,m.ELEDIM_OUTPUT1 companycode, companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT, SUM(famountfor) famountfor,client FROM( SELECT fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT,SUM(famountfor) famountfor, client FROM( select fyear, '09' fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, FAMOUNT,famountfor,'K3' client from ODS.ODSTTKD_V_MR_CASHFLOW@FMSLK where fperiod <= 9 ) GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_CF' AND M.ELEDIM_INPUT2 = S.companycode GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,m.ELEDIM_OUTPUT1 ORDER BY COMPANYCODE ,ITEMNAME ) ), c10 as ( SELECT * FROM ( SELECT FYEAR||fperiod YEARMONTH, fyear,fperiod,FYEAR||'ACT' SCENARIO,m.ELEDIM_OUTPUT1 companycode, companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT, SUM(famountfor) famountfor,client FROM( SELECT fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT,SUM(famountfor) famountfor, client FROM( select fyear, '10' fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, FAMOUNT,famountfor,'K3' client from ODS.ODSTTKD_V_MR_CASHFLOW@FMSLK where fperiod <= 10 ) GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_CF' AND M.ELEDIM_INPUT2 = S.companycode GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,m.ELEDIM_OUTPUT1 ORDER BY COMPANYCODE ,ITEMNAME ) ), c11 as ( SELECT * FROM ( SELECT FYEAR||fperiod YEARMONTH, fyear,fperiod,FYEAR||'ACT' SCENARIO,m.ELEDIM_OUTPUT1 companycode, companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT, SUM(famountfor) famountfor,client FROM( SELECT fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT,SUM(famountfor) famountfor, client FROM( select fyear, '11' fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, FAMOUNT,famountfor,'K3' client from ODS.ODSTTKD_V_MR_CASHFLOW@FMSLK where fperiod <= 11 ) GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_CF' AND M.ELEDIM_INPUT2 = S.companycode GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,m.ELEDIM_OUTPUT1 ORDER BY COMPANYCODE ,ITEMNAME ) ), c12 as ( SELECT * FROM ( SELECT FYEAR||fperiod YEARMONTH, fyear,fperiod,FYEAR||'ACT' SCENARIO,m.ELEDIM_OUTPUT1 companycode, companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT, SUM(famountfor) famountfor,client FROM( SELECT fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, SUM(FAMOUNT) FAMOUNT,SUM(famountfor) famountfor, client FROM( select fyear, '12' fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME, FAMOUNT,famountfor,'K3' client from ODS.ODSTTKD_V_MR_CASHFLOW@FMSLK where fperiod <= 12 ) GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_ENTITY_K3' AND M.COD_MAPPATURA = 'HI_DATA_CF' AND M.ELEDIM_INPUT2 = S.companycode GROUP BY fyear,fperiod,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,m.ELEDIM_OUTPUT1 ORDER BY COMPANYCODE ,ITEMNAME ) ) SELECT * FROM ( select YEARMONTH, fyear,fperiod,SCENARIO,companycode,companyname,itemcode,itemname,fcurrencyid,CUSTCODE,CUSTSPPNAME,client,'K3_CF' NOTE, DECODE(SUBSTR(ITEMCODE,6,2),02,FAMOUNT * -1,FAMOUNT) FAMOUNT, DECODE(SUBSTR(ITEMCODE,6,2),02,famountfor * -1,famountfor) famountfor from ( select * from c1 union all select * from c2 union all select * from c3 union all select * from c4 union all select * from c5 union all select * from c6 union all select * from c7 union all select * from c8 union all select * from c9 union all select * from c10 union all select * from c11 union all select * from c12 ) ) WHERE YEARMONTH IN ({IN-YEARMONTH}) AND companycode IN ({IN-ENTITY})
NC:
应收应付+内部交易:with s1 as ( select YEARMONTH,yearv||'ACT' YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, SUM(balance) balance,sum(creditamount) creditamount,sum(debitamount) debitamount,direction ,CLIENT from ( select V.yearv||'01' YEARMONTH,v.yearv,'01' periodv,v.unitcode,v.unitname,valuecode,valuename, v.subjcode,v.subjname,sum(creditamount) creditamount, sum(debitamount) debitamount, (case direction when 'C' then 'H' when 'D' then 'S' end) direction , sum(v.creditamount * -1 + v.debitamount) balance,'YONYOU' CLIENT from ODS.Odsreyy_V_Gl_Detail@FMSLK v WHERE valuecode LIKE '02%' AND PERIODV <= 01 group by v.yearv , v.unitcode,v.unitname,valuecode,valuename ,v.subjcode,v.subjname,direction,periodv order by valuecode,subjcode ) group by YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename ,subjcode,subjname,direction ,CLIENT order by valuecode,subjcode ), s2 as ( select YEARMONTH,yearv||'ACT' YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, SUM(balance) balance,sum(creditamount) creditamount,sum(debitamount) debitamount,direction ,CLIENT from ( select V.yearv||'02' YEARMONTH,v.yearv,'02' periodv,v.unitcode,v.unitname,valuecode,valuename, v.subjcode,v.subjname,sum(creditamount) creditamount, sum(debitamount) debitamount, (case direction when 'C' then 'H' when 'D' then 'S' end) direction , sum(v.creditamount * -1 + v.debitamount) balance,'YONYOU' CLIENT from ODS.Odsreyy_V_Gl_Detail@FMSLK v WHERE valuecode LIKE '02%' AND PERIODV <= 02 group by v.yearv , v.unitcode,v.unitname,valuecode,valuename ,v.subjcode,v.subjname,direction,periodv order by valuecode,subjcode ) group by YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename ,subjcode,subjname,direction ,CLIENT order by valuecode,subjcode ), s3 as ( select YEARMONTH,yearv||'ACT' YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, SUM(balance) balance,sum(creditamount) creditamount,sum(debitamount) debitamount,direction ,CLIENT from ( select V.yearv||'03' YEARMONTH,v.yearv,'03' periodv,v.unitcode,v.unitname,valuecode,valuename, v.subjcode,v.subjname,sum(creditamount) creditamount, sum(debitamount) debitamount, (case direction when 'C' then 'H' when 'D' then 'S' end) direction , sum(v.creditamount * -1 + v.debitamount) balance,'YONYOU' CLIENT from ODS.Odsreyy_V_Gl_Detail@FMSLK v WHERE valuecode LIKE '02%' AND PERIODV <= 03 group by v.yearv , v.unitcode,v.unitname,valuecode,valuename ,v.subjcode,v.subjname,direction,periodv order by valuecode,subjcode ) group by YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename ,subjcode,subjname,direction ,CLIENT order by valuecode,subjcode ), s4 as ( select YEARMONTH,yearv||'ACT' YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, SUM(balance) balance,sum(creditamount) creditamount,sum(debitamount) debitamount,direction ,CLIENT from ( select V.yearv||'04' YEARMONTH,v.yearv,'04' periodv,v.unitcode,v.unitname,valuecode,valuename, v.subjcode,v.subjname,sum(creditamount) creditamount, sum(debitamount) debitamount, (case direction when 'C' then 'H' when 'D' then 'S' end) direction , sum(v.creditamount * -1 + v.debitamount) balance,'YONYOU' CLIENT from ODS.Odsreyy_V_Gl_Detail@FMSLK v WHERE valuecode LIKE '02%' AND PERIODV <= 04 group by v.yearv , v.unitcode,v.unitname,valuecode,valuename ,v.subjcode,v.subjname,direction,periodv order by valuecode,subjcode ) group by YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename ,subjcode,subjname,direction ,CLIENT order by valuecode,subjcode ), s5 as ( select YEARMONTH,yearv||'ACT' YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, SUM(balance) balance,sum(creditamount) creditamount,sum(debitamount) debitamount,direction ,CLIENT from ( select V.yearv||'05' YEARMONTH,v.yearv,'05' periodv,v.unitcode,v.unitname,valuecode,valuename, v.subjcode,v.subjname,sum(creditamount) creditamount, sum(debitamount) debitamount, (case direction when 'C' then 'H' when 'D' then 'S' end) direction , sum(v.creditamount * -1 + v.debitamount) balance,'YONYOU' CLIENT from ODS.Odsreyy_V_Gl_Detail@FMSLK v WHERE valuecode LIKE '02%' AND PERIODV <= 05 group by v.yearv , v.unitcode,v.unitname,valuecode,valuename ,v.subjcode,v.subjname,direction,periodv order by valuecode,subjcode ) group by YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename ,subjcode,subjname,direction ,CLIENT order by valuecode,subjcode ), s6 as ( select YEARMONTH,yearv||'ACT' YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, SUM(balance) balance,sum(creditamount) creditamount,sum(debitamount) debitamount,direction ,CLIENT from ( select V.yearv||'06' YEARMONTH,v.yearv,'06' periodv,v.unitcode,v.unitname,valuecode,valuename, v.subjcode,v.subjname,sum(creditamount) creditamount, sum(debitamount) debitamount, (case direction when 'C' then 'H' when 'D' then 'S' end) direction , sum(v.creditamount * -1 + v.debitamount) balance,'YONYOU' CLIENT from ODS.Odsreyy_V_Gl_Detail@FMSLK v WHERE valuecode LIKE '02%' AND PERIODV <= 06 group by v.yearv , v.unitcode,v.unitname,valuecode,valuename ,v.subjcode,v.subjname,direction,periodv order by valuecode,subjcode ) group by YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename ,subjcode,subjname,direction ,CLIENT order by valuecode,subjcode ), s7 as ( select YEARMONTH,yearv||'ACT' YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, SUM(balance) balance,sum(creditamount) creditamount,sum(debitamount) debitamount,direction ,CLIENT from ( select V.yearv||'07' YEARMONTH,v.yearv,'07' periodv,v.unitcode,v.unitname,valuecode,valuename, v.subjcode,v.subjname,sum(creditamount) creditamount, sum(debitamount) debitamount, (case direction when 'C' then 'H' when 'D' then 'S' end) direction , sum(v.creditamount * -1 + v.debitamount) balance,'YONYOU' CLIENT from ODS.Odsreyy_V_Gl_Detail@FMSLK v WHERE valuecode LIKE '02%' AND PERIODV <= 07 group by v.yearv , v.unitcode,v.unitname,valuecode,valuename ,v.subjcode,v.subjname,direction,periodv order by valuecode,subjcode ) group by YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename ,subjcode,subjname,direction ,CLIENT order by valuecode,subjcode ), s8 as ( select YEARMONTH,yearv||'ACT' YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, SUM(balance) balance,sum(creditamount) creditamount,sum(debitamount) debitamount,direction ,CLIENT from ( select V.yearv||'08' YEARMONTH,v.yearv,'08' periodv,v.unitcode,v.unitname,valuecode,valuename, v.subjcode,v.subjname,sum(creditamount) creditamount, sum(debitamount) debitamount, (case direction when 'C' then 'H' when 'D' then 'S' end) direction , sum(v.creditamount * -1 + v.debitamount) balance,'YONYOU' CLIENT from ODS.Odsreyy_V_Gl_Detail@FMSLK v WHERE valuecode LIKE '02%' AND PERIODV <= 08 group by v.yearv , v.unitcode,v.unitname,valuecode,valuename ,v.subjcode,v.subjname,direction,periodv order by valuecode,subjcode ) group by YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename ,subjcode,subjname,direction ,CLIENT order by valuecode,subjcode ), s9 as ( select YEARMONTH,yearv||'ACT' YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, SUM(balance) balance,sum(creditamount) creditamount,sum(debitamount) debitamount,direction ,CLIENT from ( select V.yearv||'09' YEARMONTH,v.yearv,'09' periodv,v.unitcode,v.unitname,valuecode,valuename, v.subjcode,v.subjname,sum(creditamount) creditamount, sum(debitamount) debitamount, (case direction when 'C' then 'H' when 'D' then 'S' end) direction , sum(v.creditamount * -1 + v.debitamount) balance,'YONYOU' CLIENT from ODS.Odsreyy_V_Gl_Detail@FMSLK v WHERE valuecode LIKE '02%' AND PERIODV <= 09 group by v.yearv , v.unitcode,v.unitname,valuecode,valuename ,v.subjcode,v.subjname,direction,periodv order by valuecode,subjcode ) group by YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename ,subjcode,subjname,direction ,CLIENT order by valuecode,subjcode ), s10 as ( select YEARMONTH,yearv||'ACT' YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, SUM(balance) balance,sum(creditamount) creditamount,sum(debitamount) debitamount,direction ,CLIENT from ( select V.yearv||'10' YEARMONTH,v.yearv,'10' periodv,v.unitcode,v.unitname,valuecode,valuename, v.subjcode,v.subjname,sum(creditamount) creditamount, sum(debitamount) debitamount, (case direction when 'C' then 'H' when 'D' then 'S' end) direction , sum(v.creditamount * -1 + v.debitamount) balance,'YONYOU' CLIENT from ODS.Odsreyy_V_Gl_Detail@FMSLK v WHERE valuecode LIKE '02%' AND PERIODV <= 10 group by v.yearv , v.unitcode,v.unitname,valuecode,valuename ,v.subjcode,v.subjname,direction,periodv order by valuecode,subjcode ) group by YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename ,subjcode,subjname,direction ,CLIENT order by valuecode,subjcode ), s11 as ( select YEARMONTH,yearv||'ACT' YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, SUM(balance) balance,sum(creditamount) creditamount,sum(debitamount) debitamount,direction ,CLIENT from ( select V.yearv||'11' YEARMONTH,v.yearv,'11' periodv,v.unitcode,v.unitname,valuecode,valuename, v.subjcode,v.subjname,sum(creditamount) creditamount, sum(debitamount) debitamount, (case direction when 'C' then 'H' when 'D' then 'S' end) direction , sum(v.creditamount * -1 + v.debitamount) balance,'YONYOU' CLIENT from ODS.Odsreyy_V_Gl_Detail@FMSLK v WHERE valuecode LIKE '02%' AND PERIODV <= 11 group by v.yearv , v.unitcode,v.unitname,valuecode,valuename ,v.subjcode,v.subjname,direction,periodv order by valuecode,subjcode ) group by YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename ,subjcode,subjname,direction ,CLIENT order by valuecode,subjcode ), s12 as ( select YEARMONTH,yearv||'ACT' YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, SUM(balance) balance,sum(creditamount) creditamount,sum(debitamount) debitamount,direction ,CLIENT from ( select V.yearv||'12' YEARMONTH,v.yearv,'12' periodv,v.unitcode,v.unitname,valuecode,valuename, v.subjcode,v.subjname,sum(creditamount) creditamount, sum(debitamount) debitamount, (case direction when 'C' then 'H' when 'D' then 'S' end) direction , sum(v.creditamount * -1 + v.debitamount) balance,'YONYOU' CLIENT from ODS.Odsreyy_V_Gl_Detail@FMSLK v WHERE valuecode LIKE '02%' AND PERIODV <= 12 group by v.yearv , v.unitcode,v.unitname,valuecode,valuename ,v.subjcode,v.subjname,direction,periodv order by valuecode,subjcode ) group by YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename ,subjcode,subjname,direction ,CLIENT order by valuecode,subjcode ) SELECT YEARMONTH,YEARV,periodv,unitcode,unitname,valuecode,valuename,subjcode,subjname, balance, creditamount, debitamount,direction ,CLIENT FROM ( SELECT YEARMONTH,YEARV,periodv,M.ELEDIM_OUTPUT1 unitcode,unitname,valuecode,valuename,subjcode,subjname, balance, creditamount, debitamount,direction ,CLIENT FROM ( select * from s1 union all select * from s2 union all select * from s3 union all select * from s4 union all select * from s5 union all select * from s6 union all select * from s7 union all select * from s8 union all select * from s9 union all select * from s10 union all select * from s11 union all select * from s12 ) t left join MAP_REGOLA_TAB_ELEMENTO m ON M.COD_REGOLA_TAB = 'MAP_ENTITY_YONYOU' AND M.COD_MAPPATURA = 'HI_DATA_IC' AND M.ELEDIM_INPUT2 = T.UNITCODE ) WHERE YEARMONTH IN ({IN-YEARMONTH}) and unitcode in ({IN-ENTITY}) and substr(subjcode,1,4) in ('5001','5002','1121','1122','1221','2201','2202','2203','2241')
内部现金流往来:
with c1 as( select YEARMONTH, SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT from( select YEARMONTH,YEARV||'ACT' SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, CLIENT,SUM(BALANCE) balance from ( select unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev, YEAR YEARV,'01' periodv,YEAR||'01' YEARMONTH, SUM(localcreditamount*-1 + localdebitamount) balance,'YONYOU'CLIENT from ODS.ODSREYY_V_MR_CASHFLOWIN@FMSLK v WHERE valuename not like '期初'and valuename not like '%存提现及转账%' and valuename not like '%存货的减少%'and valuename not like '%经营性应付项目的增加%' and period <= 01 group by unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,period,year order by unitcode,unitname,subjcode,year,period ) group by YEARMONTH,unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,periodv,yearv,CLIENT ) ), c2 as( select YEARMONTH, SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT from( select YEARMONTH,YEARV||'ACT' SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, 'YONYOU'CLIENT,SUM(BALANCE) balance from ( select unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev, YEAR YEARV,'02' periodv,YEAR||'02' YEARMONTH, SUM(localcreditamount*-1 + localdebitamount) balance,'YONYOU'CLIENT from ODS.ODSREYY_V_MR_CASHFLOWIN@FMSLK v WHERE valuename not like '期初'and valuename not like '%存提现及转账%' and valuename not like '%存货的减少%'and valuename not like '%经营性应付项目的增加%' and period <= 02 group by unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,period,year order by unitcode,unitname,subjcode,year,period ) group by YEARMONTH,unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,periodv,yearv ) ), c3 as( select YEARMONTH, SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT from( select YEARMONTH,YEARV||'ACT' SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, 'YONYOU'CLIENT,SUM(BALANCE) balance from( select unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev, YEAR YEARV,'03' periodv,YEAR||'03' YEARMONTH, SUM(localcreditamount*-1 + localdebitamount) balance,'YONYOU'CLIENT from ODS.ODSREYY_V_MR_CASHFLOWIN@FMSLK v WHERE valuename not like '期初'and valuename not like '%存提现及转账%' and valuename not like '%存货的减少%'and valuename not like '%经营性应付项目的增加%' and period <= 03 group by unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,period,year order by unitcode,unitname,subjcode,year,period ) group by YEARMONTH,unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,periodv,yearv ) ), c4 as( select YEARMONTH, SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT from( select YEARMONTH,YEARV||'ACT' SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, 'YONYOU'CLIENT,SUM(BALANCE) balance from ( select unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev, YEAR YEARV,'04' periodv,YEAR||'04' YEARMONTH, SUM(localcreditamount*-1 + localdebitamount) balance,'YONYOU'CLIENT from ODS.ODSREYY_V_MR_CASHFLOWIN@FMSLK v WHERE valuename not like '期初'and valuename not like '%存提现及转账%' and valuename not like '%存货的减少%'and valuename not like '%经营性应付项目的增加%' and period <= 04 group by unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,period,year order by unitcode,unitname,subjcode,year,period ) group by YEARMONTH,unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,periodv,yearv ) ), c5 as( select YEARMONTH, SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT from( select YEARMONTH,YEARV||'ACT' SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, 'YONYOU'CLIENT,SUM(BALANCE) balance from ( select unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev, YEAR YEARV,'05' periodv,YEAR||'05' YEARMONTH, SUM(localcreditamount*-1 + localdebitamount) balance,'YONYOU'CLIENT from ODS.ODSREYY_V_MR_CASHFLOWIN@FMSLK v WHERE valuename not like '期初'and valuename not like '%存提现及转账%' and valuename not like '%存货的减少%'and valuename not like '%经营性应付项目的增加%' and period <= 05 group by unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,period,year order by unitcode,unitname,subjcode,year,period ) group by YEARMONTH,unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,periodv,yearv ) ), c6 as( select YEARMONTH, SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT from( select YEARMONTH,YEARV||'ACT' SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, 'YONYOU'CLIENT,SUM(BALANCE) balance from ( select unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev, YEAR YEARV,'06' periodv,YEAR||'06' YEARMONTH, SUM(localcreditamount*-1 + localdebitamount) balance,'YONYOU'CLIENT from ODS.ODSREYY_V_MR_CASHFLOWIN@FMSLK v WHERE valuename not like '期初'and valuename not like '%存提现及转账%' and valuename not like '%存货的减少%'and valuename not like '%经营性应付项目的增加%' and period <= 06 group by unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,period,year order by unitcode,unitname,subjcode,year,period ) group by YEARMONTH,unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,periodv,yearv ) ), c7 as( select YEARMONTH, SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT from( select YEARMONTH,YEARV||'ACT' SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, 'YONYOU'CLIENT,SUM(BALANCE) balance from ( select unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev, YEAR YEARV,'07' periodv,YEAR||'07' YEARMONTH, SUM(localcreditamount*-1 + localdebitamount) balance,'YONYOU'CLIENT from ODS.ODSREYY_V_MR_CASHFLOWIN@FMSLK v WHERE valuename not like '期初'and valuename not like '%存提现及转账%' and valuename not like '%存货的减少%'and valuename not like '%经营性应付项目的增加%' and period <= 07 group by unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,period,year order by unitcode,unitname,subjcode,year,period ) group by YEARMONTH,unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,periodv,yearv ) ), c8 as( select YEARMONTH, SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT from( select YEARMONTH,YEARV||'ACT' SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, 'YONYOU'CLIENT,SUM(BALANCE) balance from ( select unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev, YEAR YEARV,'08' periodv,YEAR||'08' YEARMONTH, SUM(localcreditamount*-1 + localdebitamount) balance,'YONYOU'CLIENT from ODS.ODSREYY_V_MR_CASHFLOWIN@FMSLK v WHERE valuename not like '期初'and valuename not like '%存提现及转账%' and valuename not like '%存货的减少%'and valuename not like '%经营性应付项目的增加%' and period <= 08 group by unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,period,year order by unitcode,unitname,subjcode,year,period ) group by YEARMONTH,unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,periodv,yearv ) ), c9 as( select YEARMONTH, SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT from( select YEARMONTH,YEARV||'ACT' SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, 'YONYOU'CLIENT,SUM(BALANCE) balance from ( select unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev, YEAR YEARV,'09' periodv,YEAR||'09' YEARMONTH, SUM(localcreditamount*-1 + localdebitamount) balance,'YONYOU'CLIENT from ODS.ODSREYY_V_MR_CASHFLOWIN@FMSLK v WHERE valuename not like '期初'and valuename not like '%存提现及转账%' and valuename not like '%存货的减少%'and valuename not like '%经营性应付项目的增加%' and period <= 09 group by unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,period,year order by unitcode,unitname,subjcode,year,period ) group by YEARMONTH,unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,periodv,yearv ) ), c10 as( select YEARMONTH, SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT from( select YEARMONTH,YEARV||'ACT' SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, 'YONYOU'CLIENT,SUM(BALANCE) balance from ( select unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev, YEAR YEARV,'10' periodv,YEAR||'10' YEARMONTH, SUM(localcreditamount*-1 + localdebitamount) balance,'YONYOU'CLIENT from ODS.ODSREYY_V_MR_CASHFLOWIN@FMSLK v WHERE valuename not like '期初'and valuename not like '%存提现及转账%' and valuename not like '%存货的减少%'and valuename not like '%经营性应付项目的增加%' and period <= 10 group by unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,period,year order by unitcode,unitname,subjcode,year,period ) group by YEARMONTH,unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,periodv,yearv ) ), c11 as( select YEARMONTH, SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT from( select YEARMONTH,YEARV||'ACT' SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, 'YONYOU'CLIENT,SUM(BALANCE) balance from ( select unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev, YEAR YEARV,'11' periodv,YEAR||'11' YEARMONTH, SUM(localcreditamount*-1 + localdebitamount) balance,'YONYOU'CLIENT from ODS.ODSREYY_V_MR_CASHFLOWIN@FMSLK v WHERE valuename not like '期初'and valuename not like '%存提现及转账%' and valuename not like '%存货的减少%'and valuename not like '%经营性应付项目的增加%' and period <= 11 group by unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,period,year order by unitcode,unitname,subjcode,year,period ) group by YEARMONTH,unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,periodv,yearv ) ), c12 as( select YEARMONTH, SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT from( select YEARMONTH,YEARV||'ACT' SCENARIO,unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, 'YONYOU'CLIENT,SUM(BALANCE) balance from ( select unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev, YEAR YEARV,'12' periodv,YEAR||'12' YEARMONTH, SUM(localcreditamount*-1 + localdebitamount) balance,'YONYOU'CLIENT from ODS.ODSREYY_V_MR_CASHFLOWIN@FMSLK v WHERE valuename not like '期初'and valuename not like '%存提现及转账%' and valuename not like '%存货的减少%'and valuename not like '%经营性应付项目的增加%' and period <= 12 group by unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,period,year order by unitcode,unitname,subjcode,year,period ) group by YEARMONTH,unitcode,unitname,subjcode,subjname,subjlev,cashcode,cashname,valuecode,valuename,periodv,yearv ) ) SELECT * FROM ( select YEARMONTH, SCENARIO, M.ELEDIM_OUTPUT1 unitcode,unitname,subjcode,subjname,cashcode,cashname,valuecode,valuename,subjlev,YEARV,periodv, balance,CLIENT,'NC_CF' NOTE from ( select * from c1 union all select * from c2 union all select * from c3 union all select * from c4 union all select * from c5 union all select * from c6 union all select * from c7 union all select * from c8 union all select * from c9 union all select * from c10 union all select * from c11 union all select * from c12 ) S LEFT JOIN MAP_REGOLA_TAB_ELEMENTO M ON M.COD_REGOLA_TAB = 'MAP_BUKRS_YONYOU' AND M.COD_MAPPATURA = 'HI_DATA_GL' AND M.ELEDIM_INPUT2 = S.unitcode ) WHERE YEARMONTH IN ({IN-YEARMONTH}) AND UNITCODE IN ({IN-ENTITY}) order by cashcode,cashname,valuecode,VALUENAME,UNITCODE,SUBJCODE,YEARV,PERIODV
相关文章推荐
- cf D. Dima and Trap Graph
- cf C. Sereja and Algorithm
- CF - 798D. Mike and distribution - 排序+数学
- CF_292_B_Drazil and His Happy Friends_数学
- CF 510E(Fox And Dinner-把质数拆成奇数和偶数)
- CF Zepto Code Rush 2014 B. Om Nom and Spiders
- CF - 580A. Kefa and First Steps - dp思维
- CF 558B(Amr and The Large Array-计数)
- 【CF啥时候改成文件输出了0 0】CodeForce 253A—boys and girls
- CF 853D Michael and Charging Stations
- cf 714 e Sonya and Problem Wihtout a Legend
- 【CF】438E. The Child and Binary Tree
- CF342E Xenia and Tree(分块暴力)
- cf - 777C-Alyona and Spreadsheet(预处理)
- cf 167.div2 D.Dima and Two Sequences
- CF 277.5 C.Given Length and Sum of Digits.. 构造
- CF_525C_IlyaAndSticks
- cf 768 D. Jon and Orbs(概率DP)@
- CF 316div2 E.Pig and Palindromes
- using web services core framework and CFNetwork to access remote soap service