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

124 lines
3.9 KiB
Transact-SQL

-- Schema: C6MartPeriodico
-- Stored Procedure: SP_DQ_PosizioniDuplicate
-- =============================================
-- Author: Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:
-- Individuazione dei Clienti che presentano una o più posizioni duplicate
-- nel proprio patrimonio finanziario
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================
-- ATTENZIONE !!!
-- La SP che carica la Patrimonio BF effettua un controllo dopo una prima elaborazione e scarta
-- i record "duplicati". Riporto la query di INPUT per poter effetturare il test e lo scarto
CREATE procedure [C6MartPeriodico].[SP_DQ_PosizioniDuplicate]
@idFaseElaborazione int
AS
BEGIN
Declare @idTipoControllo int
set @idTipoControllo=4
-- Selezione in Tabella Temporanea Verifica_CAMPIONE dei record "doppi"
SELECT -- PER DIVERSI DA CC ************************
SPB.RETE AS RETE,
SPB.CODFIS AS COD_FISCALE,
SPB.POSITIONID AS POSITIONID,
SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO,
SPB.CODCONF AS ID_CONTRATTO,
CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
END AS DATA_SOTTOSCRIZIONE,
null AS COD_STATO,
SPB.NUMPOL AS NUM_POLIZZA,
SPB.MAF AS COD_MAF,
SPB.CODINT AS COD_INTERNO,
SPB.SUBPROD AS COD_SOTTOPRODOTTO,
SPB.TIPPROD AS TIPO_PRODOTTO,
CASE
WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
ELSE LTRIM(RTRIM(CON.nomeProgetto))
END AS NOME_PROGETTO,
case when isnull(CON.tipoProgetto, '') = '' then 'Default'
when CON.tipoProgetto = 0 then 'Default'
else 'ProgettoInvestimento' end as TIPO_PROGETTO,
CON.area AS ID_AREA,
CASE
WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
END AS DATA_OPERAZIONE,
NULL AS DATA_VALUTA,
NULL AS DATA_REGOLAMENTO,
SPB.QUOTE AS QUANTITA,
NULL AS PREZZO,
SPB.CTV AS CTV,
SPB.VALORE AS CTV_NOMINALE,
CASE
WHEN (SPB.TIPPROD = 'GE'
OR SPB.TIPPROD = 'GES')
AND SPB.DTSOTTOS < 20070101
THEN NULL
WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
THEN NULL
WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
THEN NULL
WHEN SPB.CVN = 0
THEN NULL
ELSE SPB.CVN
END AS VERSATO_NETTO,
SPB.PARTVIA AS PARTVIA_DISINV,
CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
NULL AS PARTVIA_INV,
CASE
WHEN (SPB.TIPPROD = 'GE'
OR SPB.TIPPROD = 'GES')
AND SPB.DTSOTTOS < 20070101
THEN NULL
WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
THEN NULL
WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
THEN NULL
ELSE SPB.RENDINIZ
END AS REND_SOTTOSCRIZIONE,
null AS REND_TRIMESTRE,
CASE
WHEN (SPB.TIPPROD = 'GE'
OR SPB.TIPPROD = 'GES')
AND SPB.DTSOTTOS < 20070101
THEN NULL
WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
THEN NULL
WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
THEN NULL
ELSE SPB.RENDANNO
END AS REND_ANNO,
CON.StrType,
CON.Complessita AS COMPLEX,
CON.DescrizioneEmittente AS EMITTENTE,
SPB.ISIN,
CON.chiaveClientePB,
--nuovo
0 AS REND_NON_RAPPR,
CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
CON.CHIAVEPROGETTO AS CHIAVEPROGETTO
-- fine nuovo
--***************************************
INTO #Verifica_CAMPIONE
--*************************