This query takes more than 1 hour
CREATE VIEW [dbo].[viewAR_ST_Product]
AS
SELECT
1210 AS ArrangementTypeOID,
364 AS ObjectStatusOID,
539 AS
ArrangementLifeCycleStatusTypeOID,
1010001005 AS SourceSystemOID,
1010001121 AS SourceFileOID,
(
CAST(viewAR_ST_Product_Int.EFF_REKNR AS VARCHAR) + '/EFF/' +
RTRIM(LTRIM(viewAR_ST_Product_Int.K_FONDS)) + '/' +
ISNULL(viewARProductMap.IDAT, '')
) AS UniqueIdInSourceSystem,
-- We are assuming here that xlsTOFFONDS will be populated.
1080001022 AS IdentifierTypeOID,
-- To be changed as not available
GETDATE() AS
InitialPopulationTimestamp,
GETDATE() AS LastPopulationTimestamp,
CAST(viewAR_ST_Product_Int.CLIENT_NR AS VARCHAR)
AS CustomerUniqueId,
viewDWHCustomer.SourceSystemOID AS
CustomerSourceSystemOID,
viewDWHCustomer.SourceFileOID AS
CustomerSourceFileOID,
viewDWHCustomer.IdentifierTypeOID AS
CustomerIdentifierTypeOID,
ISNULL(viewDWHCustomer.InvolvedPartyOID, -1)
AS CustomerOID,
(
RTRIM(LTRIM(viewAR_ST_Product_Int.K_FONDS)) + '/' +
ISNULL(viewARProductMap.IDAT, '')
)
AS ProductUniqueId,
viewARProductMap.SourceSystemOID AS ProductSourceSystemOID,
viewARProductMap.SourceFileOID AS
ProductSourceFileOID,
viewARProductMap.IdentifierTypeOID AS
ProductIdentifierTypeOID,
ISNULL(viewARProductMap.ProductOID, -1) AS ProductOID,
CAST(viewAR_ST_Product_Int.EFF_REKNR AS VARCHAR) + '/EFF'
AS MasterProductArrangementUniqueId,
1010001005 AS
MasterProductArrangementSourceSystemOID,
1010001121 AS
MasterProductArrangementSourceFileOID,
1080001019 AS
MasterProductArrangementIdentifierTypeOID,
viewDWHArrangement.ArrangementOID AS
MasterProductArrangementOID,
'ST' AS Securities_Type
FROM
viewAR_ST_Product_Int LEFT OUTER JOIN
(
SELECT
InvolvedPartyOID,
UniqueIdInSourceSystem,
SourceFileOID,
SourceSystemOID,
IdentifierTypeOID
FROM
viewDWHIP
WHERE
AABCustomerIndicatorOID = 616 AND
SourceFileOID = 1010001110 AND
SourceSystemOID = 1010001014 AND
IdentifierTypeOID IN (1080001004, 1080001024)
) AS viewDWHCustomer
ON
CAST(viewAR_ST_Product_Int.CLIENT_NR AS VARCHAR) = viewDWHCustomer.UniqueIdInSourceSystem
LEFT OUTER JOIN
(
SELECT
ArrangementOID,
UniqueIdInSourceSystem
FROM
viewDWHArrangement
WHERE
SourceFileOID = 1010001121 AND
IdentifierTypeOID = 1080001019 AND
SourceSystemOID = 1010001005
) AS viewDWHArrangement
ON
CAST(viewAR_ST_Product_Int.EFF_REKNR AS VARCHAR) + '/EFF' = viewDWHArrangement.UniqueIdInSourceSystem
LEFT OUTER JOIN
(
SELECT
xlsTOFFONDS.FONDSCODE AS FONDSCODE,
xlsTOFFONDS.IDAT AS IDAT,
viewDWHProduct.ProductOID AS ProductOID,
viewDWHProduct.UniqueIdInSourceSystem AS
UniqueIdInSourceSystem,
viewDWHProduct.SourceFileOID AS
SourceFileOID,
viewDWHProduct.SourceSystemOID AS
SourceSystemOID,
viewDWHProduct.IdentifierTypeOID AS
IdentifierTypeOID
FROM
xlsTOFFONDS INNER JOIN
(
SELECT
ProductOID,
UniqueIdInSourceSystem,
SourceFileOID,
SourceSystemOID,
IdentifierTypeOID
FROM
viewDWHProduct
WHERE
SourceFileOID = 1010001117 AND
SourceSystemOID = 1010001005 AND
IdentifierTypeOID =
1080001014
) AS viewDWHProduct
ON
(xlsTOFFONDS.FONDSCODE + '/' +
xlsTOFFONDS.IDAT) = viewDWHProduct.UniqueIdInSourceSystem
) AS viewARProductMap
ON
RTRIM(LTRIM(viewAR_ST_Product_Int.K_FONDS)) = viewARProductMap.FONDSCODE WHERE
(
CAST(viewAR_ST_Product_Int.EFF_REKNR AS VARCHAR) +
RTRIM(LTRIM(viewAR_ST_Product_Int.K_FONDS))
) NOT IN
(
SELECT
(
CAST(xlsAR_SecuritiesPositions.REKNR AS
VARCHAR) +
RTRIM(LTRIM(xlsAR_SecuritiesPositions.FONDSCOD))
)
FROM
xlsAR_SecuritiesPositions
)