1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
   | CREATE VIEW SCORECARD_EURO 
 
AS         
SELECT 
        m1.entry_id AS ENTRY_ID1, 
        m2.entry_id AS ENTRY_ID2, 
        cross_scr.ENTRY_ID AS ENTRY_ID3, 
        m1.title AS TITLE1, 
        m2.title AS TITLE2, 
        m3.title AS TITLE3, 
        cross_scr.ROW_ID AS ROW_ID, 
        scorecard_row.position AS ROW_POSITION, 
        scorecard_rowgroup.position AS ROWGROUP_POSITION, 
        CASE 
                WHEN scorecard_row.reserved = 'EDITABLE' THEN scorecard.col_0003 
                ELSE scorecard_row.label 
        END        AS ROW_LABEL, 
          scorecard_rowgroup.label AS ROWGROUP_LABEL, 
          scorecard_row.reserved AS RESERVED, 
        m3.COL_CURRENCY AS CURRENCY_ID, 
        CURRENCY.MULTIPLIER, 
        CURRENCY.LABEL AS CURRENCY_LABEL, 
        m1.COL_NATURE_L1 AS NATURE_L1, 
        m3.COL_NATURE_L3 AS NATURE_L3, 
        nature_level3.GROUPNAME AS NATURE_L3_CLASS, 
        m3.COL_NATURE_FINE AS NATURE_FINE, 
        m3.COL_MATURITY AS MATURITY, 
        m3.COL_PILOT_ENTITY AS PILOT_ENTITY, 
        m1.COL_PILOT_ENTITY AS PILOT_ENTITY_LEVEL1, 
        m3.COL_LEGAL_ENTITY AS LEGAL_ENTITY, 
        m3.COL_USED_METHODOLOGY AS USED_METHODOLOGY, 
        m3.COL_TRACING AS TRACING, 
        m3.COL_SC_VALIDATED AS SC_VALIDATED, 
        org_departments.groupname AS POL, 
        org_departments_level1.groupname AS POL_LEVEL1, 
        scorecard.history_date AS HISTORY_DATE, 
        m3.COL_SC_COMM AS SC_COMM, 
        m3.COL_SC_COMM2 AS SC_COMM2, 
        m3.COL_RESP_EOG AS RESP_EOG, 
        m3.COL_PLANNING AS PLANNING, 
        m3.COL_STOCK AS STOCK, 
        m3.COL_TERRITORY AS TERRITORY, 
        m3.COL_MINORITY_SHAREHOLDER AS MINORITY_SHAREHOLDER, 
        m3.COL_BUDGET_PROCEDURE AS BUDGET_PROCEDURE, 
        m3.COL_IMPACT, 
        CASE 
                WHEN cross_scr.ROW_ID <= 49 OR cross_scr.ROW_ID=99 OR cross_scr.ROW_ID=100 THEN 0 
                ELSE 49 
        END AS SC_PART,         
        CASE 
                WHEN cross_scr.row_id <> 15 AND cross_scr.row_id <> 18 AND cross_scr.row_id<>64 AND cross_scr.row_id <> 67 
                 AND cross_scr.row_id <> 30 AND cross_scr.row_id <> 39 AND cross_scr.row_id<>79 AND cross_scr.row_id <> 88 
                 THEN 
                        ISNULL(SCORECARD.COL_0036*(ISNULL(currency_management.COL_0036,1)*ISNULL(currency.multiplier,1))/1000000,0)+ 
                        ISNULL(SCORECARD.COL_0086*(ISNULL(currency_management.COL_0086,1)*ISNULL(currency.multiplier,1))/1000000,0)+ 
                        ISNULL(SCORECARD.COL_0136*(ISNULL(currency_management.COL_0136,1)*ISNULL(currency.multiplier,1))/1000000,0)+ 
                        ISNULL(SCORECARD.COL_0186*(ISNULL(currency_management.COL_0186,1)*ISNULL(currency.multiplier,1))/1000000,0) 
 
                WHEN cross_scr.row_id = 30 OR cross_scr.row_id = 39 OR cross_scr.row_id=79 OR cross_scr.row_id = 88 THEN 
                        ISNULL(COL_0001,0) 
                ELSE 0 
        END 
        AS COL_0001, 
        CASE 
                WHEN cross_scr.row_id <> 15 AND cross_scr.row_id <> 18 AND cross_scr.row_id<>64 AND cross_scr.row_id <> 67 
                 AND cross_scr.row_id <> 30 AND cross_scr.row_id <> 39 AND cross_scr.row_id<>79 AND cross_scr.row_id <> 88 
                 THEN 
                        ISNULL( 
                                ISNULL(SCORECARD.COL_0036*(ISNULL(currency_management.COL_0036,1)*ISNULL(currency.multiplier,1))/1000000,0)+ 
                                ISNULL(SCORECARD.COL_0086*(ISNULL(currency_management.COL_0086,1)*ISNULL(currency.multiplier,1))/1000000,0)+ 
                                ISNULL(SCORECARD.COL_0136*(ISNULL(currency_management.COL_0136,1)*ISNULL(currency.multiplier,1))/1000000,0)+ 
                                ISNULL(SCORECARD.COL_0186*(ISNULL(currency_management.COL_0186,1)*ISNULL(currency.multiplier,1))/1000000,0) 
 
                        ,0) 
                        - 
                        ( 
                                SELECT 
                                ISNULL(SUM( 
                                        ISNULL( 
                                                ISNULL(SCORECARD_49.COL_0036*(ISNULL(currency_management.COL_0036,1)*ISNULL(currency.multiplier,1))/1000000,0)+ 
                                                ISNULL(SCORECARD_49.COL_0086*(ISNULL(currency_management.COL_0086,1)*ISNULL(currency.multiplier,1))/1000000,0)+ 
                                                ISNULL(SCORECARD_49.COL_0136*(ISNULL(currency_management.COL_0136,1)*ISNULL(currency.multiplier,1))/1000000,0)+ 
                                                ISNULL(SCORECARD_49.COL_0186*(ISNULL(currency_management.COL_0186,1)*ISNULL(currency.multiplier,1))/1000000,0) 
 
 
                                        ,0)        ),0) 
                                FROM 
                                        SCORECARD        as SCORECARD_49 
                                        inner join maindata on maindata.entry_id=scorecard_49.entry_id   
                                        left outer join currency_management on currency_management.currency_id=maindata.col_currency 
                                        inner join currency on currency.id=maindata.col_currency 
                                WHERE SCORECARD_49.entry_id = cross_scr.entry_id AND SCORECARD_49.row_id=cross_scr.row_id+49 AND SCORECARD_49.row_id<>99 AND SCORECARD_49.row_id<>100 
                        ) 
                WHEN cross_scr.row_id = 30 OR cross_scr.row_id = 39 OR cross_scr.row_id=79 OR cross_scr.row_id = 88 THEN 
                        ISNULL(COL_0002,0) 
                ELSE 0 
        END AS COL_0002, 
        SCORECARD.COL_0003 AS COL_0003,         
        SCORECARD.col_0006*CASE WHEN cross_scr.row_id <> 15 AND cross_scr.row_id <> 18 AND cross_scr.row_id <> 64 AND cross_scr.row_id <> 67 THEN (ISNULL(currency_management.col_0006,1)*ISNULL(currency.multiplier,1))/1000000 ELSE 1 END  AS COL_0006, 
        SCORECARD.COL_0016*CASE WHEN cross_scr.row_id <> 15 AND cross_scr.row_id <> 18 AND cross_scr.row_id <> 64 AND cross_scr.row_id <> 67 THEN (ISNULL(currency_management.COL_0016,1)*ISNULL(currency.multiplier,1))/1000000 ELSE 1 END  AS COL_0016, 
        SCORECARD.COL_0026*CASE WHEN cross_scr.row_id <> 15 AND cross_scr.row_id <> 18 AND cross_scr.row_id <> 64 AND cross_scr.row_id <> 67 THEN (ISNULL(currency_management.COL_0026,1)*ISNULL(currency.multiplier,1))/1000000 ELSE 1 END  AS COL_0026 
 
 
FROM 
        (select 
    distinct scorecard.entry_id as entry_id,scorecard_row.row_id as row_id 
        from 
    scorecard_row ,scorecard) cross_scr 
  left outer join scorecard on cross_scr.entry_id=scorecard.entry_id and cross_scr.row_id = scorecard.row_id 
        inner join maindata m3 on m3.entry_id=cross_scr.entry_id  and m3.deleted=0 
        left outer join currency_management on currency_management.currency_id=m3.col_currency 
        inner join currency on currency.id=m3.col_currency 
        left outer join maindata m2 on m2.entry_id = m3.parent_entry_id 
        left outer join maindata m1 on m1.entry_id = m2.parent_entry_id 
        left outer join scorecard_row on scorecard_row.row_id = cross_scr.row_id 
        left outer join scorecard_rowgroup on scorecard_rowgroup.group_id = scorecard_row.group_id 
        left outer join org_departments on m3.col_pilot_entity = org_departments.id 
        left outer join org_departments org_departments_level1 on m1.col_pilot_entity = org_departments_level1.id 
        left outer join nature_level3 on nature_level3.id = m3.col_nature_l3 | 
Partager