99 lines
3.0 KiB
Transact-SQL
99 lines
3.0 KiB
Transact-SQL
-- [C6martPeriodico].PL_MP_S144DistibuzionePerScadenze 'f','00164770307'
|
|
CREATE procedure [C6MartPeriodico].[PL_MP_S144DistibuzionePerScadenze]
|
|
@Rete char(1),
|
|
@CodiceFiscale varchar(16)
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
DECLARE @DTTRIM datetime
|
|
SET @DTTRIM = c6martperiodico.gettrimestre2(getdate(),0)
|
|
SELECT
|
|
T.SCADENZA,
|
|
T.CONTROVALORE ,
|
|
ISNULL(sum(CONTROVALORE) / ((SELECT sum(BF.ctv)
|
|
FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
|
|
INNER JOIN c6MartPeriodico.patrimonio_BF BF
|
|
ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
|
|
AND BF.rete = @Rete
|
|
AND BF.cod_fiscale = @CodiceFiscale
|
|
AND ANAG.FLG_OB='S'
|
|
AND ANAG.DT_SCADENZA >= @DTTRIM)/100),0)
|
|
AS Percentage,
|
|
CASE T.SCADENZA
|
|
WHEN 'Meno di 1 anno' THEN 128
|
|
WHEN 'Da 1 a 3 anni' THEN 161
|
|
WHEN 'Da 3 a 7 anni' THEN 193
|
|
WHEN 'Più di 7 anni' THEN 224
|
|
ELSE 255
|
|
END AS Red,
|
|
CASE T.SCADENZA
|
|
WHEN 'Meno di 1 anno' THEN 153
|
|
WHEN 'Da 1 a 3 anni' THEN 177
|
|
WHEN 'Da 3 a 7 anni' THEN 202
|
|
WHEN 'Più di 7 anni' THEN 228
|
|
ELSE 255
|
|
END AS Green,
|
|
CASE T.SCADENZA
|
|
WHEN 'Meno di 1 anno' THEN 136
|
|
WHEN 'Da 1 a 3 anni' THEN 163
|
|
WHEN 'Da 3 a 7 anni' THEN 193
|
|
WHEN 'Più di 7 anni' THEN 223
|
|
ELSE 255
|
|
END AS Blue
|
|
FROM (
|
|
SELECT
|
|
'Meno di 1 anno' as SCADENZA,
|
|
ISNULL(sum(BF.ctv),0) as CONTROVALORE,
|
|
1 AS ORDINE
|
|
FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
|
|
INNER JOIN c6MartPeriodico.patrimonio_BF BF
|
|
ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
|
|
AND BF.rete = @Rete
|
|
AND BF.cod_fiscale = @CodiceFiscale
|
|
AND DATEDIFF(d, GETDATE(),ANAG.DT_SCADENZA) <= 365
|
|
AND ANAG.FLG_OB='S'
|
|
AND ANAG.DT_SCADENZA >= @DTTRIM
|
|
UNION
|
|
SELECT
|
|
'Da 1 a 3 anni' as SCADENZA,
|
|
ISNULL(sum(BF.ctv),0) as CONTROVALORE,
|
|
2 AS ORDINE
|
|
FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
|
|
INNER JOIN c6MartPeriodico.patrimonio_BF BF
|
|
ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
|
|
AND BF.rete = @Rete
|
|
AND BF.cod_fiscale = @CodiceFiscale
|
|
AND DATEDIFF(d, GETDATE(),ANAG.DT_SCADENZA) BETWEEN 365+1 and 365*3
|
|
AND ANAG.FLG_OB='S'
|
|
AND ANAG.DT_SCADENZA >= @DTTRIM
|
|
UNION
|
|
SELECT
|
|
'Da 3 a 7 anni' as SCADENZA,
|
|
ISNULL(sum(BF.ctv),0) as CONTROVALORE,
|
|
3 AS ORDINE
|
|
FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
|
|
INNER JOIN c6MartPeriodico.patrimonio_BF BF
|
|
ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
|
|
AND BF.rete = @Rete
|
|
AND BF.cod_fiscale = @CodiceFiscale
|
|
AND DATEDIFF(d, GETDATE(),ANAG.DT_SCADENZA) BETWEEN 365*3+1 and 365*7
|
|
AND ANAG.FLG_OB='S'
|
|
AND ANAG.DT_SCADENZA >= @DTTRIM
|
|
UNION
|
|
SELECT
|
|
'Più di 7 anni' as SCADENZA,
|
|
ISNULL(sum(BF.ctv),0) as CONTROVALORE,
|
|
4 AS ORDINE
|
|
FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
|
|
INNER JOIN c6MartPeriodico.patrimonio_BF BF
|
|
ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
|
|
AND BF.rete = @Rete
|
|
AND BF.cod_fiscale = @CodiceFiscale
|
|
AND DATEDIFF(d, GETDATE(),ANAG.DT_SCADENZA) >= 365*7+1
|
|
AND ANAG.FLG_OB='S'
|
|
AND ANAG.DT_SCADENZA >= @DTTRIM
|
|
) T
|
|
WHERE T.CONTROVALORE > 0
|
|
GROUP BY T.SCADENZA,T.CONTROVALORE,T.ORDINE
|
|
ORDER BY T.ORDINE
|
|
END |