-- Stored procedure -- ============================================= -- Author: Paolo Giovanetti -- Create date: 15 gennaio 2009 -- Description: vista ORACLE S82BIS_DATI_SINTET_RIS_E_INV tradotta su SQLSERVER. -- Punto di partenza per lo sviluppo futuro. -- ============================================= -- [C6MartPeriodico].[PL_S82BisDatiSintetici] 'F','DNGMRA56E66D542Z' CREATE procedure [C6MartPeriodico].[PL_S82BisDatiSintetici] -- Add the parameters for the stored procedure here @Rete char(1), @CodiceFiscale varchar(16) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; /*DECLARE @TOTRischio DECIMAL(20,2) SELECT @TOTRischio = SUM(ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV) FROM C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA INNER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAREA ON PATRAREA.RETE = RISCHIOAREA.RETE AND PATRAREA.COD_FISCALE = RISCHIOAREA.COD_FISCALE WHERE PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE','INV') AND PATRAREA.RETE = @Rete AND PATRAREA.COD_FISCALE = @CodiceFiscale*/ SELECT DISTINCT BF.ORDINAMENTO_PROGETTO, 'Inv' AS need_area, ltrim(rtrim(ISNULL(PIRMOD.NOME_PROGETTO,BF.NOME_PROGETTO))) AS NOME_PROGETTO, ISNULL(RA.VAR_PERC_PTF,0) AS var_needarea, CASE WHEN RA.COPERTURA IS NULL THEN 'n.c.' WHEN RA.COPERTURA = 0 THEN 'n.c.' ELSE NULL END AS var_needareaString, ISNULL(RA.COPERTURA,0) AS copertura_needarea, CASE WHEN RA.COPERTURA IS NULL THEN 'n.c.' WHEN RA.COPERTURA = 0 THEN 'n.c.' ELSE NULL END AS copertura_needareaString, PIRMOD.ORIZZ_TEMP AS orizzonte_Pianificato, --C6MartPeriodico.getDescFromDate(DATEDIFF(m,(DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM,PIRMOD.DATA_PIANIF)) ,GETDATE()) + 1) AS durataResidua, --DATEDIFF(m,DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM, PIRMOD.DATA_PIANIF) ,GETDATE()) + 1 AS durataResidua, C6MartPeriodico.getDescFromDate(DATEDIFF(m,C6MartPeriodico.getTrimestre(GETDATE(),0),(DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM,PIRMOD.DATA_PIANIF)) )) AS durataResidua, /*V Calcolato a livello di codice CASE WHEN BFAggr.CTV = 0 THEN 0 ELSE SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO) / BFAggr.CTV * 100 END AS pesoPerc,*/ SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO, bf.ordinamento_progetto) AS ControvaloreAttuale /*V Calcolato a livello di codice CASE WHEN @TOTRischio = 0 THEN 0 ELSE ISNULL(RA.VAR_PERC_PTF,0) * SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO) / @TOTRischio * 100 END AS rischioRelativo*/ FROM C6MartPeriodico.PATRIMONIO_BF AS BF LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA ON BF.RETE = RA.RETE AND BF.COD_FISCALE = RA.COD_FISCALE --V AND RA.COD_AGGREG = 'PIRAMIDE|Inv' AND RA.COD_AGGREG = 'RISFIN|PIRAMIDE|Inv|'+ BF.NOME_PROGETTO + '|' + cast(bf.ordinamento_progetto as varchar) -- INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD ON BF.RETE = PIRMOD.RETE AND BF.COD_FISCALE = PIRMOD.COD_FISCALE --AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO AND BF.ORDINAMENTO_PROGETTO = PIRMOD.ORDINAMENTO_PROGETTO AND PIRMOD.ID_AREA = 'Inv' INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS BFAggr ON BF.RETE = BFAggr.RETE AND BF.COD_FISCALE = BFAggr.COD_FISCALE LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE AS MONIT ON BF.RETE = MONIT.RETE AND BF.COD_FISCALE = MONIT.COD_FISCALE AND BF.ID_AREA = MONIT.ID_AREA AND BF.NOME_PROGETTO = MONIT.NOME_PROGETTO AND BF.ORDINAMENTO_PROGETTO = MONIT.ORDINAMENTO_PROGETTO WHERE 1=1 AND BF.ID_AREA = 'Inv' AND BF.RETE = @Rete AND BF.COD_FISCALE = @CodiceFiscale --AND BF.ORDINAMENTO_PROGETTO=1521667 END