-- Schema: C6MartPeriodico -- Stored Procedure: PL_D_S180ProdottiComplessitaAlta --[c6MartPeriodico].[PL_D_S180ProdottiComplessitaAlta] 'f', 'ff@9225' CREATE procedure [C6MartPeriodico].[PL_D_S180ProdottiComplessitaAlta] --'F','LPPLBR69L11L833P' -- 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 @TotalePatrimonio decimal(12,2) -- acquisiamo il totale patrimonio del cliente SELECT @TotalePatrimonio = ctv FROM c6MartPeriodico.vPatrimonioBFAggregato WHERE RETE = @Rete AND COD_FISCALE = @CodiceFiscale -- SELECT 1 as Ordine, codicecontratto as CodiceContratto, nomeprodotto as NomeProdotto, controvalore as Controvalore, compl_base as Complessita, --((controvalore * 100) / @TotalePatrimonio) as Peso, percentuale_CTV as Peso, @TotalePatrimonio as TotalePatrimonio, SUM(controvalore) OVER () as SommaControvalore, -- SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi SUM(Percentuale_CTV) OVER () as SommaPesi into #temp FROM [c6MartPeriodico].[TB_S180ProdottiComplessitaAlta] WHERE rete = @Rete AND cod_fiscale LIKE CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%' ELSE @CodiceFiscale END AND codman = CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3) ELSE '' END AND Compl_Base > 3 union all SELECT 2 as Ordine, codicecontratto as CodiceContratto, nomeprodotto as NomeProdotto, controvalore as Controvalore, compl_base as Complessita, --((controvalore * 100) / @TotalePatrimonio) as Peso, percentuale_CTV as Peso, @TotalePatrimonio as TotalePatrimonio, SUM(controvalore) OVER () as SommaControvalore, -- SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi SUM(Percentuale_CTV) OVER () as SommaPesi FROM [c6MartPeriodico].[TB_S180ProdottiComplessitaAlta] WHERE rete = @Rete AND cod_fiscale LIKE CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%' ELSE @CodiceFiscale END AND codman = CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3) ELSE '' END AND Compl_Base > 2 union all SELECT 3 as Ordine, codicecontratto as CodiceContratto, nomeprodotto as NomeProdotto, controvalore as Controvalore, compl_base as Complessita, --((controvalore * 100) / @TotalePatrimonio) as Peso, percentuale_CTV as Peso, @TotalePatrimonio as TotalePatrimonio, SUM(controvalore) OVER () as SommaControvalore, -- SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi SUM(Percentuale_CTV) OVER () as SommaPesi FROM [c6MartPeriodico].[TB_S180ProdottiComplessitaAlta] WHERE rete = @Rete AND cod_fiscale LIKE CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%' ELSE @CodiceFiscale END AND codman = CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3) ELSE '' END AND Compl_Base > 1 -- --20180905 Fine modifica order by ordine,Compl_Base desc delete from #temp where ordine=1 and SommaPesi<20 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta è <20 delete from #temp where ordine=2 and SommaPesi<30 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta e medio-alta è <30 delete from #temp where ordine=3 and SommaPesi<50 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta e medio-alta e medio-bassa è <50 -- select * from #temp --order by ordine,Complessita DECLARE @ordineConcatenato VARCHAR(4) SELECT @ordineConcatenato = COALESCE(@ordineConcatenato + '', ''