UFN_WPSECURITIES_DATAREFRESHCHANGEHISTORY
Returns a table containing change history from Data Refresh for Securities.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@WEALTHID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN |
Definition
Copy
CREATE function [dbo].[UFN_WPSECURITIES_DATAREFRESHCHANGEHISTORY](
@WEALTHID uniqueidentifier = null,
@STARTDATE datetime = null,
@ENDDATE datetime = null
)
returns table
as
return
(
with WPSECURITIES_CTE as
(
select
WPSECURITIES.ID,
WPSECURITIES.WEALTHID
from
WPSECURITIES
where
(WPSECURITIES.WEALTHID = @WEALTHID or @WEALTHID is null)
), OLDVERSIONS(
REVISIONNUMBER,
WEALTHID,
PARTIALHASH,
SOURCE,
DATEADDED,
KEYNAME,
--Insert Data Columns Here
FULLNAME,
CUSIP,
FILERID,
RELATIONSHIP,
TICKER,
ISSUERNAME,
REPORTDATEDIRECT,
REPORTDATEINDIRECT,
AMOUNTOWNEDDIRECT,
AMOUNTOWNEDINDIRECT
)as(
select
Row_Number() over (partition by WPSECURITIES.ID order by WPSECURITIESHISTORY.DATEADDED) as REVISIONNUMBER,
WPSECURITIES.WEALTHID,
WPSECURITIESHISTORY.PARTIALHASH,
WPSECURITIESHISTORY.SOURCE,
WPSECURITIESHISTORY.DATEADDED,
--Set Key Name Field Here
WPSECURITIESHISTORY.ISSUERNAME as KEYNAME,
--Insert Data Columns Here
cast(WPSECURITIESHISTORY.FULLNAME as nvarchar(4000)),
cast(WPSECURITIESHISTORY.CUSIP as nvarchar(4000)),
cast(WPSECURITIESHISTORY.FILERID as nvarchar(4000)),
cast(WPSECURITIESHISTORY.RELATIONSHIP as nvarchar(4000)),
cast(WPSECURITIESHISTORY.TICKER as nvarchar(4000)),
cast(WPSECURITIESHISTORY.ISSUERNAME as nvarchar(4000)),
cast(WPSECURITIESHISTORY.REPORTDATEDIRECT as nvarchar(4000)),
cast(WPSECURITIESHISTORY.REPORTDATEINDIRECT as nvarchar(4000)),
cast(WPSECURITIESHISTORY.AMOUNTOWNEDDIRECT as nvarchar(4000)),
cast(WPSECURITIESHISTORY.AMOUNTOWNEDINDIRECT as nvarchar(4000))
from
dbo.WPSECURITIESHISTORY
inner join WPSECURITIES_CTE as WPSECURITIES on
WPSECURITIES.ID = WPSECURITIESHISTORY.WPSECURITIESID
),
NEWVERSIONS(
REVISIONNUMBER,
WEALTHID,
PARTIALHASH,
SOURCE,
DATE,
KEYNAME,
--Insert Data Columns Here
FULLNAME,
CUSIP,
FILERID,
RELATIONSHIP,
TICKER,
ISSUERNAME,
REPORTDATEDIRECT,
REPORTDATEINDIRECT,
AMOUNTOWNEDDIRECT,
AMOUNTOWNEDINDIRECT
)as(
select
(OLDVERSIONS.REVISIONNUMBER - 1) as REVISIONNUMBER,
OLDVERSIONS.WEALTHID,
OLDVERSIONS.PARTIALHASH,
OLDVERSIONS.SOURCE,
OLDVERSIONS.DATEADDED as DATE,
--Set Key Name Field Here
OLDVERSIONS.KEYNAME,
--Insert Data Columns Here
OLDVERSIONS.FULLNAME,
OLDVERSIONS.CUSIP,
OLDVERSIONS.FILERID,
OLDVERSIONS.RELATIONSHIP,
OLDVERSIONS.TICKER,
OLDVERSIONS.ISSUERNAME,
OLDVERSIONS.REPORTDATEDIRECT,
OLDVERSIONS.REPORTDATEINDIRECT,
OLDVERSIONS.AMOUNTOWNEDDIRECT,
OLDVERSIONS.AMOUNTOWNEDINDIRECT
from
OLDVERSIONS
where
(@STARTDATE is null or OLDVERSIONS.DATEADDED >= @STARTDATE) and
(@ENDDATE is null or OLDVERSIONS.DATEADDED <= @ENDDATE)
),
REVISIONS(
WEALTHID,
PARTIALHASH,
SOURCE,
DATE,
KEYNAME,
--Insert Data Columns Here (Including "_NEW" Columns)
FULLNAME,
CUSIP,
FILERID,
RELATIONSHIP,
TICKER,
ISSUERNAME,
REPORTDATEDIRECT,
REPORTDATEINDIRECT,
AMOUNTOWNEDDIRECT,
AMOUNTOWNEDINDIRECT,
FULLNAME_NEW,
CUSIP_NEW,
FILERID_NEW,
RELATIONSHIP_NEW,
TICKER_NEW,
ISSUERNAME_NEW,
REPORTDATEDIRECT_NEW,
REPORTDATEINDIRECT_NEW,
AMOUNTOWNEDDIRECT_NEW,
AMOUNTOWNEDINDIRECT_NEW
)as(
select
OLDVERSIONS.WEALTHID,
OLDVERSIONS.PARTIALHASH,
NEWVERSIONS.SOURCE,
NEWVERSIONS.DATE,
NEWVERSIONS.KEYNAME,
--Insert Data Columns Here (Including "_NEW" Columns)
OLDVERSIONS.FULLNAME as FULLNAME,
OLDVERSIONS.CUSIP as CUSIP,
OLDVERSIONS.FILERID as FILERID,
OLDVERSIONS.RELATIONSHIP as RELATIONSHIP,
OLDVERSIONS.TICKER as TICKER,
OLDVERSIONS.ISSUERNAME as ISSUERNAME,
OLDVERSIONS.REPORTDATEDIRECT as REPORTDATEDIRECT,
OLDVERSIONS.REPORTDATEINDIRECT as REPORTDATEINDIRECT,
OLDVERSIONS.AMOUNTOWNEDDIRECT as AMOUNTOWNEDDIRECT,
OLDVERSIONS.AMOUNTOWNEDINDIRECT as AMOUNTOWNEDINDIRECT,
NEWVERSIONS.FULLNAME as FULLNAME_NEW,
NEWVERSIONS.CUSIP as CUSIP_NEW,
NEWVERSIONS.FILERID as FILERID_NEW,
NEWVERSIONS.RELATIONSHIP as RELATIONSHIP_NEW,
NEWVERSIONS.TICKER as TICKER_NEW,
NEWVERSIONS.ISSUERNAME as ISSUERNAME_NEW,
NEWVERSIONS.REPORTDATEDIRECT as REPORTDATEDIRECT_NEW,
NEWVERSIONS.REPORTDATEINDIRECT as REPORTDATEINDIRECT_NEW,
NEWVERSIONS.AMOUNTOWNEDDIRECT as AMOUNTOWNEDDIRECT_NEW,
NEWVERSIONS.AMOUNTOWNEDINDIRECT as AMOUNTOWNEDINDIRECT_NEW
from
OLDVERSIONS
inner join NEWVERSIONS on
OLDVERSIONS.REVISIONNUMBER = NEWVERSIONS.REVISIONNUMBER and
OLDVERSIONS.WEALTHID = NEWVERSIONS.WEALTHID and
OLDVERSIONS.PARTIALHASH = NEWVERSIONS.PARTIALHASH
)
select
CONSTITUENT.ID as CONSTITUENTID,
CONSTITUENT.NAME,
CHANGES.SOURCE,
CHANGES.KEYNAME,
CHANGES.DATE,
WEALTHPOINTDATAREFRESHNOTIFICATIONFIELD.FIELDTRANSLATION,
CHANGES.OLDVALUE,
CHANGES.NEWVALUE
from(
select
WEALTHID,
PARTIALHASH,
SOURCE,
KEYNAME,
DATE,
FIELDNAME,
OLDVALUE,
NEWVALUE
from(
select
WEALTHID,
PARTIALHASH,
SOURCE,
KEYNAME,
DATE,
--Insert Data Columns Here (Including "_NEW" Columns)
FULLNAME,
CUSIP,
FILERID,
RELATIONSHIP,
TICKER,
ISSUERNAME,
REPORTDATEDIRECT,
REPORTDATEINDIRECT,
AMOUNTOWNEDDIRECT,
AMOUNTOWNEDINDIRECT,
FULLNAME_NEW,
CUSIP_NEW,
FILERID_NEW,
RELATIONSHIP_NEW,
TICKER_NEW,
ISSUERNAME_NEW,
REPORTDATEDIRECT_NEW,
REPORTDATEINDIRECT_NEW,
AMOUNTOWNEDDIRECT_NEW,
AMOUNTOWNEDINDIRECT_NEW
from
REVISIONS
)as SOURCEDATA
unpivot(
OLDVALUE for FIELDNAME IN(
--Insert Data Columns Here (Excluding "_NEW" Columns)
FULLNAME,
CUSIP,
FILERID,
RELATIONSHIP,
TICKER,
ISSUERNAME,
REPORTDATEDIRECT,
REPORTDATEINDIRECT,
AMOUNTOWNEDDIRECT,
AMOUNTOWNEDINDIRECT
))as UNPIVOTEDDATA1
unpivot(
NEWVALUE for FIELDNAME_NEW IN(
--Insert Data Columns Here (Only "_NEW" Columns)
FULLNAME_NEW,
CUSIP_NEW,
FILERID_NEW,
RELATIONSHIP_NEW,
TICKER_NEW,
ISSUERNAME_NEW,
REPORTDATEDIRECT_NEW,
REPORTDATEINDIRECT_NEW,
AMOUNTOWNEDDIRECT_NEW,
AMOUNTOWNEDINDIRECT_NEW
)) as UNPIVOTEDDATA2
where
FIELDNAME_NEW = FIELDNAME + '_NEW'and
OLDVALUE <> NEWVALUE and
NEWVALUE is not null and
NEWVALUE <> ''
) as CHANGES
left join dbo.CONSTITUENT on
CONSTITUENT.ID = CHANGES.WEALTHID
left join dbo.WEALTHPOINTDATAREFRESHNOTIFICATIONFIELD on
CHANGES.FIELDNAME = WEALTHPOINTDATAREFRESHNOTIFICATIONFIELD.FIELDNAME and
WEALTHPOINTDATAREFRESHNOTIFICATIONFIELD.TABLENAME = 'WPSECURITIES'
)