PDC_REPORT_CreazioneDB/sql/storedTestbes/C6MartPeriodico_PL_MP_S144DistibuzionePerScadenze.sql
2025-06-06 19:02:52 +02:00

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