120 lines
3.9 KiB
Transact-SQL
120 lines
3.9 KiB
Transact-SQL
-- Schema: C6Mart
|
||
-- Stored Procedure: PL_D_S180ProdottiComplessitaAlta
|
||
|
||
|
||
|
||
|
||
|
||
--[C6Mart].[PL_D_S180ProdottiComplessitaAlta] 'f', 'ff@9225'
|
||
CREATE procedure [C6Mart].[PL_D_S180ProdottiComplessitaAlta] --'W','BRGDNT48P60D612V'
|
||
-- 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
|
||
C6Mart.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,
|
||
@TotalePatrimonio as TotalePatrimonio,
|
||
SUM(controvalore) OVER () as SommaControvalore,
|
||
SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
|
||
into #temp
|
||
FROM
|
||
[C6Mart].[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,
|
||
@TotalePatrimonio as TotalePatrimonio,
|
||
SUM(controvalore) OVER () as SommaControvalore,
|
||
SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
|
||
FROM
|
||
[C6Mart].[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,
|
||
@TotalePatrimonio as TotalePatrimonio,
|
||
SUM(controvalore) OVER () as SommaControvalore,
|
||
SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
|
||
FROM
|
||
[C6Mart].[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> <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 <20> <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 <20> <50
|
||
|
||
-- select * from #temp --order by ordine,Complessita
|
||
|
||
DECLARE @ordineConcatenato VARCHAR(4)
|
||
|
||
SELECT @ordineConcatenato = COALESCE(@ordineConcatenato + '', '') + CAST(ordine AS VARCHAR)
|
||
FROM (SELECT DISTINCT ordine FROM #temp) AS subquery
|
||
-- @ordineConcatenato conterr<72> i valori distinti concatenati della colonna 'ordine'
|
||
|
||
|
||
SELECT Ordine,CodiceContratto,NomeProdotto,Controvalore,Complessita,Peso,TotalePatrimonio,SommaControvalore,SommaPesi,@ordineConcatenato AS O
|