146 lines
3.8 KiB
Transact-SQL
146 lines
3.8 KiB
Transact-SQL
-- Schema: C6MartPeriodico
|
||
-- Stored Procedure: PL_D_S168TabellaEmittenti
|
||
|
||
|
||
|
||
|
||
-- =============================================
|
||
-- Author: <Alessandro Tringali>
|
||
-- Create date: <25052010>
|
||
-- Description: < SEZIONE 103>
|
||
-- =============================================
|
||
--EXEC [C6Mart].[PL_D_S168TabellaEmittenti] 'F','FF@7181'
|
||
CREATE procedure [C6MartPeriodico].[PL_D_S168TabellaEmittenti]
|
||
-- 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 @patr_compl decimal(18,3)
|
||
|
||
|
||
select @patr_compl=sum(ctv_prodotto) from
|
||
c6martperiodico.patrimonio_emittenti
|
||
where cod_fiscale =@codicefiscale
|
||
and rete=@rete
|
||
and ctv_prodotto > 0
|
||
|
||
SELECT
|
||
COD_FISCALE,
|
||
RETE,
|
||
RATING_AAA,
|
||
RATING_AAp,
|
||
RATING_AA,
|
||
RATING_AAm,
|
||
RATING_Ap,
|
||
RATING_A,
|
||
RATING_Am,
|
||
RATING_BBBp,
|
||
RATING_BBB,
|
||
RATING_BBBm,
|
||
RATING_BBp,
|
||
RATING_BB,
|
||
RATING_BBm,
|
||
RATING_Bp,
|
||
RATING_B,
|
||
RATING_Bm,
|
||
RATING_CCCp,
|
||
RATING_CCC,
|
||
RATING_CCCm,
|
||
RATING_CC,
|
||
RATING_C,
|
||
RATING_D,
|
||
RATING_na,
|
||
FLG_RISKCLASS1,
|
||
FLG_RISKCLASS2,
|
||
FLG_RISKCLASS3,
|
||
FLG_RISKCLASS4,
|
||
FLG_RISKCLASS5,
|
||
FLG_RISKCLASS6,
|
||
FLG_RISKCLASS7,
|
||
FLG_RISKCLASS8,
|
||
FLG_RISKCLASS9,
|
||
FLG_RISKCLASS10,
|
||
INTERMEDIARIO,
|
||
ISSUER,
|
||
STOCKSCounterValue,
|
||
bondsCounterValue,
|
||
CONCENTRATION_ISSUER,
|
||
CONCENTRATION,
|
||
NC
|
||
--isnull(RATING,'n.a.') as RATING
|
||
FROM
|
||
(
|
||
|
||
|
||
-- PER INTERMEDIARIO
|
||
|
||
SELECT
|
||
COD_FISCALE,
|
||
RETE,
|
||
MAX(RATING_AAA) AS RATING_AAA,
|
||
MAX(RATING_AAp) AS RATING_AAp,
|
||
MAX(RATING_AA) AS RATING_AA,
|
||
MAX(RATING_AAm) AS RATING_AAm,
|
||
MAX(RATING_Ap) AS RATING_Ap,
|
||
MAX(RATING_A) AS RATING_A,
|
||
MAX(RATING_Am) AS RATING_Am,
|
||
MAX(RATING_BBBp) AS RATING_BBBp,
|
||
MAX(RATING_BBB) AS RATING_BBB,
|
||
MAX(RATING_BBBm) AS RATING_BBBm,
|
||
MAX(RATING_BBp) AS RATING_BBp,
|
||
MAX(RATING_BB) AS RATING_BB,
|
||
MAX(RATING_BBm) AS RATING_BBm,
|
||
MAX(RATING_Bp) AS RATING_Bp,
|
||
MAX(RATING_B) AS RATING_B,
|
||
MAX(RATING_Bm) AS RATING_Bm,
|
||
MAX(RATING_CCCp) AS RATING_CCCp,
|
||
MAX(RATING_CCC) AS RATING_CCC,
|
||
MAX(RATING_CCCm) AS RATING_CCCm,
|
||
MAX(RATING_CC) AS RATING_CC,
|
||
MAX(RATING_C) AS RATING_C,
|
||
MAX(RATING_D) AS RATING_D,
|
||
MAX(RATING_na) AS RATING_na,
|
||
MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
|
||
MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
|
||
MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
|
||
MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
|
||
MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
|
||
MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
|
||
MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
|
||
MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
|
||
MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
|
||
MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
|
||
--V nel caso sia null <20> BF???
|
||
isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
|
||
EMITTENTE AS ISSUER,
|
||
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
|
||
sum(bondsCounterValue) AS bondsCounterValue,
|
||
0 as CONCENTRATION_ISSUER ,
|
||
--V normalizzo la percentuale per essere rappresentato sul report
|
||
MAX(CONCENTRATION)* 100 AS CONCENTRATION,
|
||
sum(case when copertura > 0 then 0 else 1 end) as nc
|
||
--RATING as RATING
|
||
FROM
|
||
(
|
||
SELECT V.COD_FISCALE,
|
||
V.RETE,
|
||
INTERMEDIARIO,
|
||
CREDITRISKCLASS,
|
||
EMITTENTE,
|
||
CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
|
||
CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
|
||
CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
|
||
CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
|
||
CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
|
||
CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
|
||
CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
|
||
CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
|
||
CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
|
||
CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_
|