2016-11-03 4 views
0

ストアドプロシージャは、現在の列の合計を取って、Curr_YTDとPrev_YTDの値を減算してPrev_YTDで除算します。 ストアドプロシージャの修正が必要です。 誰かが減算と除算演算子で助けてくれるかどうか知らせてください。Curr_YTDとPrev_YTDを減算し、Prev_YTDで除算したい。ストアドプロシージャを修正する必要があります。

SELECT B.TEAMNAME, B.PRIMARY_CODE, B.HIERARCHY_LEVEL, A.THERAPEUTICCLASS_CD, 
       B.PRODUCT_CODE, B.CHANNEL, B.UNIT,'P' PM_INDICATOR, A.PROCESSINGPERIOD_DT, 
       A.LOCATION_CODE, A.GEOGRAPHY_NAME,party_id, A.TRX_QTY1, A.TRX_QTY2, A.TRX_QTY3, A.TRX_QTY4, 
       A.TRX_QTY5,A.TRX_QTY6,A.TRX_QTY7,A.TRX_QTY8,A.TRX_QTY9,A.TRX_QTY10,A.TRX_QTY11, 
       A.TRX_QTY12,A.TRX_QTY13,A.TRX_QTY14,A.TRX_QTY15,A.TRX_QTY16,A.TRX_QTY17,A.TRX_QTY18, 
       A.TRX_QTY19,A.TRX_QTY20,A.TRX_QTY21, A.TRX_QTY22,A.TRX_QTY23,A.TRX_QTY24, 
       A.TRX_QTY1+ A.TRX_QTY2+ A.TRX_QTY3+ A.TRX_QTY4+A.TRX_QTY5+A.TRX_QTY6+A.TRX_QTY7+A.TRX_QTY8 Curr_YTD, 
       A.TRX_QTY13+A.TRX_QTY14+A.TRX_QTY15+A.TRX_QTY16+A.TRX_QTY17+A.TRX_QTY18+A.TRX_QTY19+A.TRX_QTY20 Prev_YTD, 
       (Curr_YTD Minus Prev_YTD)/Prev_YTD YTD 


    FROM (SELECT TTP.LILLY_MARKET_ID THERAPEUTICCLASS_CD, 
       TO_DATE(XPS.PROCESSINGPERIOD_DT, 'MM/DD/YYYY') PROCESSINGPERIOD_DT, 
       TTP.PRIMARY_CD PRIMARY_CODE, 
       TLP.LOCATION_CODE, 
       RTRIM(TLP.Geography_name) GEOGRAPHY_NAME, 
       ttp.party_id, 
       SUM(XPS.TRX_QTY1) TRX_QTY1,SUM(XPS.TRX_QTY2) TRX_QTY2,SUM(XPS.TRX_QTY3) TRX_QTY3, 
       SUM(XPS.TRX_QTY4) TRX_QTY4,SUM(XPS.TRX_QTY5) TRX_QTY5,SUM(XPS.TRX_QTY6) TRX_QTY6, 
       SUM(XPS.TRX_QTY7) TRX_QTY7,SUM(XPS.TRX_QTY8) TRX_QTY8,SUM(XPS.TRX_QTY9) TRX_QTY9, 
       SUM(XPS.TRX_QTY10) TRX_QTY10,SUM(XPS.TRX_QTY11) TRX_QTY11,SUM(XPS.TRX_QTY12) TRX_QTY12, 
       SUM(XPS.TRX_QTY13) TRX_QTY13,SUM(XPS.TRX_QTY14) TRX_QTY14,SUM(XPS.TRX_QTY15) TRX_QTY15, 
       SUM(XPS.TRX_QTY16) TRX_QTY16,SUM(XPS.TRX_QTY17) TRX_QTY17,SUM(XPS.TRX_QTY18) TRX_QTY18, 
       SUM(XPS.TRX_QTY19) TRX_QTY19,SUM(XPS.TRX_QTY20) TRX_QTY20,SUM(XPS.TRX_QTY21) TRX_QTY21, 
       SUM(XPS.TRX_QTY22) TRX_QTY22,SUM(XPS.TRX_QTY23) TRX_QTY23,SUM(XPS.TRX_QTY24) TRX_QTY24 
      FROM T_SALECRDTNG_XPS_48861 XPS, 
       T_SALECRDTNG_TTP_49354 TTP, 
       T_SALESCRD_LOCTNMAPNG TLP 
     WHERE TTP.PARTY_ID = XPS.PRFSNL_ID 
      AND TTP.LILLY_MARKET_ID = XPS.LLY_THERAPEUTICCLASS_CD 
      AND TLP.MAPPINGID = 48871 
      and TLP.PRIMARY_CODE = 'USUA' 
      AND XPS.PRODUCT_ID IN ('10210','10215') 
      AND XPS.LLY_PRODUCT_ID IN ('203825','208142') 
      AND TLP.LOCATION_CODE = TRIM(TTP.MASTER_GEO_ID) 
      AND TTP.PRIMARY_CD = TLP.PRIMARY_CODE 
      group by TTP.LILLY_MARKET_ID, 
        TTP.PRIMARY_CD, 
        TO_DATE(XPS.PROCESSINGPERIOD_DT, 'MM/DD/YYYY'), 
        TLP.LOCATION_CODE, 
        ttp.party_id, 
        TLP.Geography_name) A, 
     (SELECT DISTINCT UPPER(SC.TEAMNAME) TEAMNAME, 
         DECODE(SC.HIERARCHY_LEVEL, 'TERRITORY', 3, 'DISTRICT', 2, 'AREA', 1, 'REGION', 
           6,'DIVISION',0, NULL) HIERARCHY_LEVEL, 
         SC.PRODUCT_CODE PRODUCT_CODE, 
         SC.PRIMARY_CODE PRIMARY_CODE, 
         SC.CHANNEL CHANNEL, 
         SC.UNIT UNIT 
      FROM T_SALESCRDNG_CONFIG SC 
     WHERE SC.CONFIGID = 48994 
      AND SC.PRIMARY_CODE = 'USUA' 
      AND SC.PRODUCT_CODE = 'CIALIS TOTAL') B 
WHERE A.PRIMARY_CODE = B.PRIMARY_CODE 
; 
+1

チェック[LAGとLEAD](https://msdn.microsoft.com/en-usのようなもの/library/hh231256.aspx) – NEER

答えて

0

だけSELCETを追加し、既存のクエリサブクエリを作る、この

SELECT rs.TEAMNAME, rs.PRIMARY_CODE, rs.HIERARCHY_LEVEL, rs.THERAPEUTICCLASS_CD, 
       rs.PRODUCT_CODE, rs.CHANNEL, rs.UNIT,rs.PM_INDICATOR, rs.PROCESSINGPERIOD_DT, 
       rs.LOCATION_CODE, rs.GEOGRAPHY_NAME,rs.party_id, rs.TRX_QTY1, rs.TRX_QTY2, rs.TRX_QTY3, rs.TRX_QTY4, 
       rs.TRX_QTY5,rs.TRX_QTY6,rs.TRX_QTY7,rs.TRX_QTY8,rs.TRX_QTY9,rs.TRX_QTY10,rs.TRX_QTY11, 
       rs.TRX_QTY12,rs.TRX_QTY13,rs.TRX_QTY14,rs.TRX_QTY15,rs.TRX_QTY16,rs.TRX_QTY17,rs.TRX_QTY18, 
       rs.TRX_QTY19,rs.TRX_QTY20,rs.TRX_QTY21, rs.TRX_QTY22,rs.TRX_QTY23,rs.TRX_QTY24, 
       rs.Curr_YTD, rs.Prev_YTD, 
       (rs.Curr_YTD - rs.Prev_YTD)/rs.Prev_YTD YTD 
FROM 
(
SELECT B.TEAMNAME, B.PRIMARY_CODE, B.HIERARCHY_LEVEL, A.THERAPEUTICCLASS_CD, 
       B.PRODUCT_CODE, B.CHANNEL, B.UNIT,'P' PM_INDICATOR, A.PROCESSINGPERIOD_DT, 
       A.LOCATION_CODE, A.GEOGRAPHY_NAME,party_id, A.TRX_QTY1, A.TRX_QTY2, A.TRX_QTY3, A.TRX_QTY4, 
       A.TRX_QTY5,A.TRX_QTY6,A.TRX_QTY7,A.TRX_QTY8,A.TRX_QTY9,A.TRX_QTY10,A.TRX_QTY11, 
       A.TRX_QTY12,A.TRX_QTY13,A.TRX_QTY14,A.TRX_QTY15,A.TRX_QTY16,A.TRX_QTY17,A.TRX_QTY18, 
       A.TRX_QTY19,A.TRX_QTY20,A.TRX_QTY21, A.TRX_QTY22,A.TRX_QTY23,A.TRX_QTY24, 
       A.TRX_QTY1+ A.TRX_QTY2+ A.TRX_QTY3+ A.TRX_QTY4+A.TRX_QTY5+A.TRX_QTY6+A.TRX_QTY7+A.TRX_QTY8 Curr_YTD, 
       A.TRX_QTY13+A.TRX_QTY14+A.TRX_QTY15+A.TRX_QTY16+A.TRX_QTY17+A.TRX_QTY18+A.TRX_QTY19+A.TRX_QTY20 Prev_YTD 
    FROM (SELECT TTP.LILLY_MARKET_ID THERAPEUTICCLASS_CD, 
       TO_DATE(XPS.PROCESSINGPERIOD_DT, 'MM/DD/YYYY') PROCESSINGPERIOD_DT, 
       TTP.PRIMARY_CD PRIMARY_CODE, 
       TLP.LOCATION_CODE, 
       RTRIM(TLP.Geography_name) GEOGRAPHY_NAME, 
       ttp.party_id, 
       SUM(XPS.TRX_QTY1) TRX_QTY1,SUM(XPS.TRX_QTY2) TRX_QTY2,SUM(XPS.TRX_QTY3) TRX_QTY3, 
       SUM(XPS.TRX_QTY4) TRX_QTY4,SUM(XPS.TRX_QTY5) TRX_QTY5,SUM(XPS.TRX_QTY6) TRX_QTY6, 
       SUM(XPS.TRX_QTY7) TRX_QTY7,SUM(XPS.TRX_QTY8) TRX_QTY8,SUM(XPS.TRX_QTY9) TRX_QTY9, 
       SUM(XPS.TRX_QTY10) TRX_QTY10,SUM(XPS.TRX_QTY11) TRX_QTY11,SUM(XPS.TRX_QTY12) TRX_QTY12, 
       SUM(XPS.TRX_QTY13) TRX_QTY13,SUM(XPS.TRX_QTY14) TRX_QTY14,SUM(XPS.TRX_QTY15) TRX_QTY15, 
       SUM(XPS.TRX_QTY16) TRX_QTY16,SUM(XPS.TRX_QTY17) TRX_QTY17,SUM(XPS.TRX_QTY18) TRX_QTY18, 
       SUM(XPS.TRX_QTY19) TRX_QTY19,SUM(XPS.TRX_QTY20) TRX_QTY20,SUM(XPS.TRX_QTY21) TRX_QTY21, 
       SUM(XPS.TRX_QTY22) TRX_QTY22,SUM(XPS.TRX_QTY23) TRX_QTY23,SUM(XPS.TRX_QTY24) TRX_QTY24 
      FROM T_SALECRDTNG_XPS_48861 XPS, 
       T_SALECRDTNG_TTP_49354 TTP, 
       T_SALESCRD_LOCTNMAPNG TLP 
     WHERE TTP.PARTY_ID = XPS.PRFSNL_ID 
      AND TTP.LILLY_MARKET_ID = XPS.LLY_THERAPEUTICCLASS_CD 
      AND TLP.MAPPINGID = 48871 
      and TLP.PRIMARY_CODE = 'USUA' 
      AND XPS.PRODUCT_ID IN ('10210','10215') 
      AND XPS.LLY_PRODUCT_ID IN ('203825','208142') 
      AND TLP.LOCATION_CODE = TRIM(TTP.MASTER_GEO_ID) 
      AND TTP.PRIMARY_CD = TLP.PRIMARY_CODE 
      group by TTP.LILLY_MARKET_ID, 
        TTP.PRIMARY_CD, 
        TO_DATE(XPS.PROCESSINGPERIOD_DT, 'MM/DD/YYYY'), 
        TLP.LOCATION_CODE, 
        ttp.party_id, 
        TLP.Geography_name) A, 
     (SELECT DISTINCT UPPER(SC.TEAMNAME) TEAMNAME, 
         DECODE(SC.HIERARCHY_LEVEL, 'TERRITORY', 3, 'DISTRICT', 2, 'AREA', 1, 'REGION', 
           6,'DIVISION',0, NULL) HIERARCHY_LEVEL, 
         SC.PRODUCT_CODE PRODUCT_CODE, 
         SC.PRIMARY_CODE PRIMARY_CODE, 
         SC.CHANNEL CHANNEL, 
         SC.UNIT UNIT 
      FROM T_SALESCRDNG_CONFIG SC 
     WHERE SC.CONFIGID = 48994 
      AND SC.PRIMARY_CODE = 'USUA' 
      AND SC.PRODUCT_CODE = 'CIALIS TOTAL') B 
WHERE A.PRIMARY_CODE = B.PRIMARY_CODE 
) rs 
; 
+0

感謝しました – thakur

+0

こんにちはThakur、ソリューションがあなたのために働いたことを知って良い。これを答えとして受け入れてください。 – Subbu

関連する問題