332 lines
12 KiB
Transact-SQL
332 lines
12 KiB
Transact-SQL
-- =============================================
|
|
-- Author: <Author,,Name>
|
|
-- Create date: <Create Date,,>
|
|
-- Description: <Description,,>
|
|
-- =============================================
|
|
-- [C6Mart].[PL_S75GradoCopertura] 'F','SMPSMN76C26L157Y'
|
|
CREATE procedure [C6Mart].[PL_S75GradoCopertura]
|
|
-- 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.
|
|
DECLARE @varCompl decimal(15,3)
|
|
DECLARE @coperturaCompl decimal(15,3)
|
|
DECLARE @ctvCompl decimal(15,3)
|
|
DECLARE @saldoCC decimal(15,3)
|
|
--CALCOLO PATRIMONI E ESTRAZIONE VAR
|
|
SELECT
|
|
@Rete AS Rete,
|
|
@CodiceFiscale as CodiceFiscale,
|
|
CASE @Rete
|
|
WHEN 'F' THEN 'Patrimonio Banca Fideuram'
|
|
WHEN 'S' THEN 'Patrimonio Sanpaolo Invest'
|
|
ELSE 'Patrimonio IW Private Inv.'
|
|
END AS NomePatrimonio,
|
|
-- MAX(patrBF.CTV - patrBF.ContoCorrente) AS Controvalore,
|
|
-- MAX(patrBF.ContoCorrente) AS ControvaloreCC,
|
|
-- MAX(RISCHIO.VAR_PERC_PTF) AS VarPatrimonio,
|
|
-- MAX(RISCHIO.COPERTURA) AS Copertura,
|
|
patrBF.PatrimonioSenzaCC AS Controvalore,
|
|
--patrBF.CTV - patrBF.ContoCorrente AS Controvalore,
|
|
patrBF.ContoCorrente AS ControvaloreCC,
|
|
RISCHIO.VAR_PERC_PTF AS VarPatrimonio,
|
|
RISCHIO.COPERTURA AS Copertura,
|
|
1 AS ORDINE INTO #TEMP75
|
|
FROM C6Mart.vPatrimoniobfAggregato patrBF
|
|
LEFT OUTER JOIN C6Mart.RISCHIO_AGGREGATO RISCHIO
|
|
ON RISCHIO.RETE = patrBF.RETE
|
|
AND RISCHIO.Cod_Fiscale = patrBF.Cod_Fiscale
|
|
AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|BF'
|
|
WHERE
|
|
patrBF.Rete = @Rete
|
|
AND patrBF.Cod_Fiscale = @CodiceFiscale
|
|
--AND patrBF.PatrimonioSenzaCC > 0
|
|
UNION ALL
|
|
SELECT A.Rete,A.CodiceFiscale,A.NomePatrimonio,A.Controvalore,A.ControvaloreCC,A.VarPatrimonio,A.Copertura,A.ORDINE
|
|
FROM(
|
|
SELECT
|
|
@Rete AS Rete,
|
|
@CodiceFiscale as CodiceFiscale,
|
|
'Patrimonio altri Istituti' AS NomePatrimonio,
|
|
SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END,2)) AS Controvalore,
|
|
SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN patrTerzi.CTV ELSE 0 END,2)) AS ControvaloreCC,
|
|
MAX(RISCHIO.VAR_PERC_PTF) as VarPatrimonio,
|
|
MAX(RISCHIO.COPERTURA) as Copertura,
|
|
2 AS ORDINE
|
|
FROM C6Mart.PATRIMONIO_TERZI patrTerzi
|
|
LEFT OUTER JOIN C6Mart.RISCHIO_AGGREGATO RISCHIO
|
|
ON RISCHIO.RETE = patrTerzi.RETE
|
|
AND RISCHIO.COD_FISCALE = patrTerzi.COD_FISCALE
|
|
AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|TERZI'
|
|
WHERE
|
|
patrTerzi.Rete = @Rete
|
|
AND patrTerzi.COD_FISCALE = @CodiceFiscale
|
|
) A
|
|
WHERE ISNULL(A.CONTROVALORE,0)>0
|
|
-- SE IL PATRIMONIO È SOLO 1 NON VA CALCOLATO IL COMPLESSIVO
|
|
IF @@ROWCOUNT > 1
|
|
BEGIN
|
|
--CALCOLO IL PATRIMONIO COMPLESSIVO ED ESTRAGGO IL VAR
|
|
SELECT
|
|
@ctvCompl=SUM(patr.CONTROVALORE),
|
|
@saldoCC=SUM(patr.CONTROVALORECC),
|
|
@varCompl=MAX(RISCHIO.VAR_PERC_PTF),
|
|
@coperturaCompl=MAX(RISCHIO.COPERTURA)
|
|
FROM #TEMP75 patr
|
|
LEFT OUTER JOIN C6Mart.RISCHIO_AGGREGATO RISCHIO
|
|
ON RISCHIO.RETE = patr.RETE
|
|
AND RISCHIO.COD_FISCALE = patr.CodiceFiscale
|
|
AND RISCHIO.COD_AGGREG = 'COMPLESSIVO'
|
|
--RESTITUISCO I PATRIMONI
|
|
SELECT
|
|
ORDINE,
|
|
NOMEPATRIMONIO,
|
|
CONTROVALORE,
|
|
CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
|
|
(CONTROVALORE/@CTVCompl)*100 as PERCENTUALE,
|
|
VARPATRIMONIO AS VAR,
|
|
COPERTURA,
|
|
-- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
|
|
-- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
|
|
CASE
|
|
WHEN COPERTURA IS NULL THEN 'n.c.'
|
|
WHEN COPERTURA = 0 THEN 'n.c.'
|
|
ELSE NULL
|
|
END AS varString,
|
|
CASE
|
|
WHEN COPERTURA IS NULL THEN 'n.c.'
|
|
WHEN COPERTURA = 0 THEN 'n.c.'
|
|
ELSE NULL
|
|
END AS coperturaString,
|
|
-- aggiunta per valutare la presenza di controcorrente
|
|
CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
|
|
-- fine aggiunta per valutare la presenza di controcorrente
|
|
FROM #TEMP75
|
|
WHERE CONTROVALORE IS NOT NULL
|
|
UNION ALL
|
|
SELECT
|
|
3,
|
|
'Patrimonio complessivo',
|
|
@CTVCompl,
|
|
CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
|
|
100.00 as percentuale,
|
|
@varCompl,
|
|
@coperturaCompl,
|
|
-- CASE @coperturaCompl WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
|
|
-- CASE @coperturaCompl WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
|
|
CASE
|
|
WHEN @coperturaCompl IS NULL THEN 'n.c.'
|
|
WHEN @coperturaCompl = 0 THEN 'n.c.'
|
|
ELSE NULL
|
|
END AS varString,
|
|
CASE
|
|
WHEN @coperturaCompl IS NULL THEN 'n.c.'
|
|
WHEN @coperturaCompl = 0 THEN 'n.c.'
|
|
ELSE NULL
|
|
END AS coperturaString,
|
|
-- aggiunta per valutare la presenza di controcorrente
|
|
CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
|
|
-- fine aggiunta per valutare la presenza di controcorrente
|
|
ORDER BY 1
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
--RESTITUISCO L'UNICO PATRIMONIO PRESENTE
|
|
SELECT
|
|
NOMEPATRIMONIO,
|
|
CONTROVALORE,
|
|
CASE WHEN CONTROVALORECC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
|
|
100.00 as PERCENTUALE,
|
|
VARPATRIMONIO AS VAR,
|
|
COPERTURA,
|
|
-- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
|
|
-- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
|
|
CASE
|
|
WHEN COPERTURA IS NULL THEN 'n.c.'
|
|
WHEN COPERTURA = 0 THEN 'n.c.'
|
|
ELSE NULL
|
|
END AS varString,
|
|
CASE
|
|
WHEN COPERTURA IS NULL THEN 'n.c.'
|
|
WHEN COPERTURA = 0 THEN 'n.c.'
|
|
ELSE NULL
|
|
END AS coperturaString,
|
|
-- aggiunta per valutare la presenza di controcorrente
|
|
CASE WHEN CONTROVALORECC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
|
|
-- fine aggiunta per valutare la presenza di controcorrente
|
|
FROM #TEMP75
|
|
WHERE CONTROVALORE IS NOT NULL
|
|
END
|
|
END
|
|
--USE [C6StampeCentralizzate]
|
|
--GO
|
|
--/****** Object: StoredProcedure [C6Mart].[PL_S75GradoCopertura] Script Date: 08/02/2022 16:57:49 ******/
|
|
--SET ANSI_NULLS ON
|
|
--GO
|
|
--SET QUOTED_IDENTIFIER ON
|
|
--GO
|
|
---- =============================================
|
|
---- Author: <Author,,Name>
|
|
---- Create date: <Create Date,,>
|
|
---- Description: <Description,,>
|
|
---- =============================================
|
|
---- [C6Mart].[PL_S75GradoCopertura] 'F','SMPSMN76C26L157Y'
|
|
--ALTER procedure [C6Mart].[PL_S75GradoCopertura]
|
|
-- -- 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.
|
|
-- DECLARE @varCompl decimal(15,3)
|
|
-- DECLARE @coperturaCompl decimal(15,3)
|
|
-- DECLARE @ctvCompl decimal(15,3)
|
|
-- DECLARE @saldoCC decimal(15,3)
|
|
-- --CALCOLO PATRIMONI E ESTRAZIONE VAR
|
|
-- SELECT
|
|
-- @Rete AS Rete,
|
|
-- @CodiceFiscale as CodiceFiscale,
|
|
-- CASE @Rete
|
|
-- WHEN 'F' THEN 'Patrimonio Banca Fideuram'
|
|
-- ELSE 'Patrimonio Sanpaolo Invest'
|
|
-- END AS NomePatrimonio,
|
|
---- MAX(patrBF.CTV - patrBF.ContoCorrente) AS Controvalore,
|
|
---- MAX(patrBF.ContoCorrente) AS ControvaloreCC,
|
|
---- MAX(RISCHIO.VAR_PERC_PTF) AS VarPatrimonio,
|
|
---- MAX(RISCHIO.COPERTURA) AS Copertura,
|
|
-- patrBF.PatrimonioSenzaCC AS Controvalore,
|
|
-- --patrBF.CTV - patrBF.ContoCorrente AS Controvalore,
|
|
-- patrBF.ContoCorrente AS ControvaloreCC,
|
|
-- RISCHIO.VAR_PERC_PTF AS VarPatrimonio,
|
|
-- RISCHIO.COPERTURA AS Copertura,
|
|
-- 1 AS ORDINE INTO #TEMP75
|
|
-- FROM C6Mart.vPatrimoniobfAggregato patrBF
|
|
-- LEFT OUTER JOIN C6Mart.RISCHIO_AGGREGATO RISCHIO
|
|
-- ON RISCHIO.RETE = patrBF.RETE
|
|
-- AND RISCHIO.Cod_Fiscale = patrBF.Cod_Fiscale
|
|
-- AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|BF'
|
|
-- WHERE
|
|
-- patrBF.Rete = @Rete
|
|
-- AND patrBF.Cod_Fiscale = @CodiceFiscale
|
|
-- --AND patrBF.PatrimonioSenzaCC > 0
|
|
-- UNION ALL
|
|
-- SELECT A.Rete,A.CodiceFiscale,A.NomePatrimonio,A.Controvalore,A.ControvaloreCC,A.VarPatrimonio,A.Copertura,A.ORDINE
|
|
-- FROM(
|
|
-- SELECT
|
|
-- @Rete AS Rete,
|
|
-- @CodiceFiscale as CodiceFiscale,
|
|
-- 'Patrimonio altri Istituti' AS NomePatrimonio,
|
|
-- SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END,2)) AS Controvalore,
|
|
-- SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN patrTerzi.CTV ELSE 0 END,2)) AS ControvaloreCC,
|
|
-- MAX(RISCHIO.VAR_PERC_PTF) as VarPatrimonio,
|
|
-- MAX(RISCHIO.COPERTURA) as Copertura,
|
|
-- 2 AS ORDINE
|
|
-- FROM C6Mart.PATRIMONIO_TERZI patrTerzi
|
|
-- LEFT OUTER JOIN C6Mart.RISCHIO_AGGREGATO RISCHIO
|
|
-- ON RISCHIO.RETE = patrTerzi.RETE
|
|
-- AND RISCHIO.COD_FISCALE = patrTerzi.COD_FISCALE
|
|
-- AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|TERZI'
|
|
-- WHERE
|
|
-- patrTerzi.Rete = @Rete
|
|
-- AND patrTerzi.COD_FISCALE = @CodiceFiscale
|
|
-- ) A
|
|
-- WHERE ISNULL(A.CONTROVALORE,0)>0
|
|
-- -- SE IL PATRIMONIO È SOLO 1 NON VA CALCOLATO IL COMPLESSIVO
|
|
-- IF @@ROWCOUNT > 1
|
|
-- BEGIN
|
|
-- --CALCOLO IL PATRIMONIO COMPLESSIVO ED ESTRAGGO IL VAR
|
|
-- SELECT
|
|
-- @ctvCompl=SUM(patr.CONTROVALORE),
|
|
-- @saldoCC=SUM(patr.CONTROVALORECC),
|
|
-- @varCompl=MAX(RISCHIO.VAR_PERC_PTF),
|
|
-- @coperturaCompl=MAX(RISCHIO.COPERTURA)
|
|
-- FROM #TEMP75 patr
|
|
-- LEFT OUTER JOIN C6Mart.RISCHIO_AGGREGATO RISCHIO
|
|
-- ON RISCHIO.RETE = patr.RETE
|
|
-- AND RISCHIO.COD_FISCALE = patr.CodiceFiscale
|
|
-- AND RISCHIO.COD_AGGREG = 'COMPLESSIVO'
|
|
-- --RESTITUISCO I PATRIMONI
|
|
-- SELECT
|
|
-- ORDINE,
|
|
-- NOMEPATRIMONIO,
|
|
-- CONTROVALORE,
|
|
-- CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
|
|
-- (CONTROVALORE/@CTVCompl)*100 as PERCENTUALE,
|
|
-- VARPATRIMONIO AS VAR,
|
|
-- COPERTURA,
|
|
---- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
|
|
---- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
|
|
-- CASE
|
|
-- WHEN COPERTURA IS NULL THEN 'n.c.'
|
|
-- WHEN COPERTURA = 0 THEN 'n.c.'
|
|
-- ELSE NULL
|
|
-- END AS varString,
|
|
-- CASE
|
|
-- WHEN COPERTURA IS NULL THEN 'n.c.'
|
|
-- WHEN COPERTURA = 0 THEN 'n.c.'
|
|
-- ELSE NULL
|
|
-- END AS coperturaString,
|
|
-- -- aggiunta per valutare la presenza di controcorrente
|
|
-- CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
|
|
-- -- fine aggiunta per valutare la presenza di controcorrente
|
|
-- FROM #TEMP75
|
|
-- WHERE CONTROVALORE IS NOT NULL
|
|
-- UNION ALL
|
|
-- SELECT
|
|
-- 3,
|
|
-- 'Patrimonio complessivo',
|
|
-- @CTVCompl,
|
|
-- CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
|
|
-- 100.00 as percentuale,
|
|
-- @varCompl,
|
|
-- @coperturaCompl,
|
|
---- CASE @coperturaCompl WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
|
|
---- CASE @coperturaCompl WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
|
|
-- CASE
|
|
-- WHEN @coperturaCompl IS NULL THEN 'n.c.'
|
|
-- WHEN @coperturaCompl = 0 THEN 'n.c.'
|
|
-- ELSE NULL
|
|
-- END AS varString,
|
|
-- CASE
|
|
-- WHEN @coperturaCompl IS NULL THEN 'n.c.'
|
|
-- WHEN @coperturaCompl = 0 THEN 'n.c.'
|
|
-- ELSE NULL
|
|
-- END AS coperturaString,
|
|
-- -- aggiunta per valutare la presenza di controcorrente
|
|
-- CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
|
|
-- -- fine aggiunta per valutare la presenza di controcorrente
|
|
-- ORDER BY 1
|
|
-- END
|
|
-- ELSE
|
|
-- BEGIN
|
|
-- --RESTITUISCO L'UNICO PATRIMONIO PRESENTE
|
|
-- SELECT
|
|
-- NOMEPATRIMONIO,
|
|
-- CONTROVALORE,
|
|
-- CASE WHEN CONTROVALORECC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
|
|
-- 100.00 as PERCENTUALE,
|
|
-- VARPATRIMONIO AS VAR,
|
|
-- COPERTURA,
|
|
---- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
|
|
---- CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
|
|
-- CASE
|
|
-- WHEN COPERTURA IS NULL THEN 'n.c.'
|
|
-- WHEN COPERTURA = 0 THEN 'n.c.'
|
|
-- ELSE NULL
|
|
-- END AS varString,
|
|
-- CASE
|
|
-- WHEN COPERTURA IS NULL THEN 'n.c.'
|
|
-- WHEN COPERTURA = 0 THEN 'n.c.'
|
|
-- ELSE NULL
|
|
-- END AS coperturaString,
|
|
-- -- aggiunta per valutare la presenza di controcorrente
|
|
-- CASE WHEN CONTROVALORECC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
|
|
-- -- fine aggiunta per valutare la presenza di controcorrente
|
|
-- FROM #TEMP75
|
|
-- WHERE CONTROVALORE IS NOT NULL
|
|
-- END
|
|
--END |