PDC_REPORT_CreazioneDB/sql/storedCollaudo/C6MartPeriodico_PL_MP_S142DistibuzionePerRating.sql
2025-06-06 19:02:52 +02:00

96 lines
2.3 KiB
SQL

-- Schema: C6MartPeriodico
-- Stored Procedure: PL_MP_S142DistibuzionePerRating
-- [C6martPeriodico].PL_MP_S142DistibuzionePerRating 'f','MSCLRT46H15A565B'
CREATE procedure [C6MartPeriodico].[PL_MP_S142DistibuzionePerRating]
@Rete char(1),
@CodiceFiscale varchar(16)
AS
BEGIN
SET NOCOUNT ON;
SELECT
RATING,
isnull(sum(T.CONTROVALORE),0) as CONTROVALORE ,
isnull(sum(T.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' )/100),0)
AS Percentage,
CASE RATING
WHEN 'Da AAA a A-' THEN 93
WHEN 'Da BBB+ a BBB-' THEN 171
WHEN 'Da BB+ a B-' THEN 174
WHEN 'Da CCC+ a D' THEN 193
ELSE 235
END AS Red,
CASE RATING
WHEN 'Da AAA a A-' THEN 138
WHEN 'Da BBB+ a BBB-' THEN 196
WHEN 'Da BB+ a B-' THEN 135
WHEN 'Da CCC+ a D' THEN 174
ELSE 235
END AS Green,
CASE RATING
WHEN 'Da AAA a A-' THEN 153
WHEN 'Da BBB+ a BBB-' THEN 150
WHEN 'Da BB+ a B-' THEN 88
WHEN 'Da CCC+ a D' THEN 149
ELSE 236
END AS Blue
FROM (
SELECT
CASE ANAG.rating
WHEN 'AAA' THEN 'Da AAA a A-'
WHEN 'AA+' THEN 'Da AAA a A-'
WHEN 'AA' THEN 'Da AAA a A-'
WHEN 'AA-' THEN 'Da AAA a A-'
WHEN 'A+' THEN 'Da AAA a A-'
WHEN 'A' THEN 'Da AAA a A-'
WHEN 'A-' THEN 'Da AAA a A-'
WHEN 'BBB+' THEN 'Da BBB+ a BBB-'
WHEN 'BBB' THEN 'Da BBB+ a BBB-'
WHEN 'BBB-' THEN 'Da BBB+ a BBB-'
WHEN 'BB+' THEN 'Da BB+ a B-'
WHEN 'BB' THEN 'Da BB+ a B-'
WHEN 'BB-' THEN 'Da BB+ a B-'
WHEN 'B+' THEN 'Da BB+ a B-'
WHEN 'B' THEN 'Da BB+ a B-'
WHEN 'B-' THEN 'Da BB+ a B-'
WHEN 'CCC+' THEN 'Da CCC+ a D'
WHEN 'CCC' THEN 'Da CCC+ a D'
WHEN 'CCC-' THEN 'Da CCC+ a D'
WHEN 'CC' THEN 'Da CCC+ a D'
WHEN 'C' THEN 'Da CCC+ a D'
WHEN 'D' THEN 'Da CCC+ a D'
ELSE 'Non classificato'
END AS RATING,
isnull(sum(BF.ctv),0) as CONTROVALORE
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'
GROUP BY ANAG.rating
) T
GROUP BY T.RATING
ORDER BY T.RATING
END