Sie sind auf Seite 1von 24

NBG Bank Malta

New Reports in T24


Request

Date: 02/07/2019
Version Changes Date Author

1.0 Initial Request 02/07/2019 Carlo Brincat


Contents
Introduction: ........................................................................................................................................... 1
Issue: ....................................................................................................................................................... 1
Scenario: ............................................................................................................................................. 1
Request: .................................................................................................................................................. 1
Reports: ................................................................................................................................................... 1
RPT_ACCOUNTS_T24 .............................................................................................................................. 2
Columns: ............................................................................................................................................. 2
Query: ................................................................................................................................................. 3
Sample................................................................................................................................................. 3
RPT_BONDS............................................................................................................................................. 4
Columns .............................................................................................................................................. 4
Query .................................................................................................................................................. 5
Sample................................................................................................................................................. 7
RPT_MM_T24.......................................................................................................................................... 8
Columns .............................................................................................................................................. 8
Query .................................................................................................................................................. 9
Sample................................................................................................................................................. 9
RPT_NOSTRO_T24................................................................................................................................. 10
Columns: ........................................................................................................................................... 10
Query: ............................................................................................................................................... 10
Sample............................................................................................................................................... 11
RPT_DCS_EX .......................................................................................................................................... 11
Columns ............................................................................................................................................ 11
Query: ............................................................................................................................................... 12
Sample: ............................................................................................................................................. 14
RPT_LOANS_T24 ................................................................................................................................... 15
Columns: ........................................................................................................................................... 15
Query: ............................................................................................................................................... 16
Sample: ............................................................................................................................................. 18
RPT_TD_T24 .......................................................................................................................................... 19
Columns: ........................................................................................................................................... 19
Query: ............................................................................................................................................... 20
Sample: ............................................................................................................................................. 21
Introduction:

NBG Bank Malta Ltd. has an audit finding in relation to how the data from the data warehouse is being
picked up. Currently, the data is being filtered by using “TIMECODE” which can also be referred to as
“Booking Date”. TIMECODE is an additional column automatically generated from an automated job
which runs daily after T24 COB. It is used in order to keep history of the DAILY COB files generated
every working day.

Issue:
The AD-HOC reports are generated and downloaded daily by Finance Department using the link
provided by NBGM IT Department to MS SQL REPORTING SERVICES.

Scenario:
Today is 02/07/2019, Finance Department downloaded the report from the previous day
(01/07/2019). The data is filtered by “TIMECODE” and not by “VALUEDATE”. If Loans Department or
Operations Department inputs a transaction with VALUEDATE 16/06/2019, the transaction will be
picked up under report with TIMECODE 02/07/2019 making it difficult for Finance to pin point it. This
issue is also on future dated transactions.

Request:
Implementation of the reports which needs to be filtered using “VALUEDATE” on T24. To also have
functionality to be downloaded and transformed to Excel files.

Reports:

Reports can be opened using Microsoft® SQL Server® 2016 Report Builder
https://www.microsoft.com/en-us/download/confirmation.aspx?id=53613

RPT_ACCOUNTS_T24.rdl RPT_BONDS.rdl RPT_DCS_EX.rdl RPT_LOANS_T24.rdl

RPT_MM_T24.rdl RPT_NOSTRO_T24.rdl RPT_TD_T24.rdl

1|Page
RPT_ACCOUNTS_T24

Columns:

 EXTERNAL ID NUMBER
 OBJECT CURRENCY
 BALANCE
 EURBALANCE
 ID
 NAME 1
 RESIDENCE
 NATIONALITY
 COUNTRY
 INDUSTRY
 SECTOR
 TARGET
 CUSTOMER STATUS
 MNEMONIC
 MISUNITS
 GROUP COMPANY CODE
 MISCOUNTRY
 NACEL2
 NACEL1
 JOINT HOLDERS
 MIS GREEK
 JOINT HOLDERS COUNT
 IS SHIPPING
 ISGROUP

2|Page
Query:

DECLARE @TIMECODE varchar(50)


SET @TIMECODE= '20190701' --Declared timecode for this example

SELECT EXTERNAL_ID_NUMBER,M.OBJECT_CURRENCY,ISNULL(CAST(BN.BALANCE_IN_OC AS
DECIMAL(15,2)),0) * -1 BALANCE
,DBO.TOMARKETEURO_T24( ISNULL(CAST(BN.BALANCE_IN_OC AS DECIMAL(15,2)),0) * -1
,M.OBJECT_CURRENCY,@TIMECODE) EURBALANCE,
C.*,
dbo.[GETJOINTTIMEDEPOSITHOLDERS](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) JOINT_HOLDERS,
CASE WHEN [dbo].[GETJOINTTIMEDEPOSITHOLDERSCOUNT](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) =
0 THEN 1 ELSE
[dbo].[GETJOINTTIMEDEPOSITHOLDERSCOUNT](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) + 1 END
[JOINT_HOLDERS_COUNT]

FROM HISTORY_T24RPT_ACC M
LEFT JOIN HISTORY_T24RPT_BLN BN ON BN.EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND
BN.TIMECODE = @TIMECODE
LEFT JOIN VW_T24CUSTOMERS C ON C.ID = M.CUSTOMER_ID
LEFT JOIN Migration.dbo.ACC_ACCOUNT A ON A.OUR_EXT_ACCT_NO = M.EXTERNAL_ID_NUMBER AND
BN.BALANCE_TYPE ='01'
WHERE M.TIMECODE =@TIMECODE AND M.CATEGORY IN (1000, 8999)
AND (BN.ASSET_TYPE NOT IN ('CONTDB', 'CONTDBBL', 'CONTCR', 'CONTCRBL')
OR BN.ASSET_TYPE IS NULL)
ORDER BY 1

Sample

3|Page
RPT_BONDS

Columns

 START DATE
 DEAL ID
 EXTERNAL ID NUMBER
 ISIN NUMBER
 COUNTERPARTY
 COUNTRY
 MOODYS DESC
 MOODYS RATI
 SP DESC
 SP RATI
 TRADE DATE
 VALUE DATE
 CURRENCY
 COUPON RATE
 INTEREST PAYMENT FREQUENCY
 LAST COUPON PAYMENT
 LAST MARKET PRICE
 NOMINAL AMOUNT BANK
 NOMINAL AMOUNT BROKER
 CLEAN PRICE BANK
 PRICE BANK
 AMORTISED COST
 ACCRUED INTEREST
 NEW AMORTISED COST

4|Page
Query

Report runs by using a Stored Procedure (“RPT_BONDS”);

Bonds are currently hard coded because the COB flat files are also showing BONDS which were sold.

USE [ActiveDW]
GO

/****** Object: StoredProcedure [dbo].[RPT_BONDS] Script Date: 02/07/2019 12:26:24


******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author: <Robert Caruana>
-- Alter date: <26/02/2019>
-- Description: <Bonds Report>
-- =============================================
CREATE PROCEDURE [dbo].[RPT_BONDS]
-- Add the parameters for the stored procedure here
@TIMECODE VARCHAR(8)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

IF OBJECT_ID('tempdb.dbo.#Holidays', 'U') IS NOT NULL


DROP TABLE tempdb.dbo.#Holidays

CREATE TABLE #Holidays(HOLIDAY_DATE nvarchar(8))


INSERT INTO #Holidays VALUES
(CONCAT(YEAR(@TIMECODE),'0101')),
(CONCAT(YEAR(@TIMECODE),'0102')),
(CONCAT(YEAR(@TIMECODE),'0210')),
(CONCAT(YEAR(@TIMECODE),'0319')),
(CONCAT(YEAR(@TIMECODE),'0331')),
(CONCAT(YEAR(@TIMECODE),'0501')),
(CONCAT(YEAR(@TIMECODE),'0607')),
(CONCAT(YEAR(@TIMECODE),'0629')),
(CONCAT(YEAR(@TIMECODE),'0815')),
(CONCAT(YEAR(@TIMECODE),'0908')),
(CONCAT(YEAR(@TIMECODE),'0921')),
(CONCAT(YEAR(@TIMECODE),'1208')),
(CONCAT(YEAR(@TIMECODE),'1213')),
(CONCAT(YEAR(@TIMECODE),'1225')),
(CONCAT(YEAR(@TIMECODE),'1226'))

;WITH BONDS_CTE AS (
SELECT
START_DATE,
DEAL_ID,
ISIN_NUMBER,
--REMOVE C.NAME_1 BROKER,
CUS.DISPLAY_NAME,
CUS.NATIONALITY,
RAT_M.DESCRIPTION AS MOODYS_DESC,

5|Page
RAT_M.RATING AS MOODYS_RATI,
RAT_SP.DESCRIPTION AS SP_DESC,
RAT_SP.RATING AS SP_RATI,
--REMOVE TRANSACTION_CODE_BANK,
--DEP.NAME_1 DEPOSITORY,
--REMOVE BR_TRANS_CODE_,
CONVERT(varchar(10), CAST(DEAL_DATE AS date)) TRADE_DATE,
CONVERT(varchar(10), CAST(SED.VALUE_DATE AS date)) VALUE_DATE,
OBJECT_CURRENCY,
COUPON_RATE,
INTEREST_PAYMENT_FREQUENCY,
LAST_COUPON_PAYMENT,
LAST_MARKET_PRICE,
SED.NOMINAL_AMOUNT_BANK,
SED.NOMINAL_AMOUNT_BROKER,
CLEAN_PRICE_BANK,
PRICE_BANK,
PRICE_BROKER,

CASE
WHEN DEAL_ID = 'SCTRSC172986ZYQ1' AND (DATEPART(DW,
@TIMECODE)) = 6 THEN -- 6 = FRIDAY, DIVIDE BY 3 BECAUSE SYSTEM CALCULATES ACCRUED INTEREST
FOR FRIDAY + WEEKEND
(CAST(CONVERT(decimal(18,2), SED.NOMINAL_AMOUNT_BANK)
* CONVERT(decimal(18,2), CLEAN_PRICE_BANK)/100 AS decimal(18,2))) +
ISNULL(CAST([dbo].[GETBONDAMORTISEDCOSTADJ](@TIMECODE,
EXTERNAL_ID_NUMBER, 3) AS DECIMAL(10,2)) * (DATEDIFF(DAY, START_DATE, @TIMECODE) +1) ,0)

WHEN DEAL_ID = 'SCTRSC172986ZYQ1' AND @TIMECODE IN (SELECT


FORMAT(DATEADD(DAY, -1, HOLIDAY_DATE),'yyyyMMdd') FROM #Holidays) THEN -- HOLIDAY DATE -1
BECAUSE IT ACCRUES THE DAY BEFORE THE HOLIDAY. DIVIDE BY 2 BECAUSE SYSTEM CALCULATES
ACCRUED INTEREST FOR DAY +HOLIDAY
(CAST(CONVERT(decimal(18,2), SED.NOMINAL_AMOUNT_BANK)
* CONVERT(decimal(18,2), CLEAN_PRICE_BANK)/100 AS decimal(18,2))) +
ISNULL(CAST([dbo].[GETBONDAMORTISEDCOSTADJ](@TIMECODE,
EXTERNAL_ID_NUMBER, 2) AS DECIMAL(10,2)) * (DATEDIFF(DAY, START_DATE, @TIMECODE) +1),0)

WHEN DEAL_ID = 'SCTRSC172986ZYQ1' THEN -- ANY OTHER DAY


(CAST(CONVERT(decimal(18,2), SED.NOMINAL_AMOUNT_BANK)
* CONVERT(decimal(18,2), CLEAN_PRICE_BANK)/100 AS decimal(18,2))) +
ISNULL(CAST([dbo].[GETBONDAMORTISEDCOSTADJ](@TIMECODE,
EXTERNAL_ID_NUMBER, 1) AS DECIMAL(10,2)) * (DATEDIFF(DAY, START_DATE, @TIMECODE) +1),0)
-- FOR ANY OTHER BONDS
ELSE (CAST(CONVERT(decimal(18,2), SED.NOMINAL_AMOUNT_BANK) *
CONVERT(decimal(18,2), CLEAN_PRICE_BANK)/100 AS decimal(18,2)))

END
AS AMORTISED_COST,

EXTERNAL_ID_NUMBER,

CASE
WHEN (DATEPART(DW, @TIMECODE)) = 6 THEN -- 6 = FRIDAY,
DIVIDE BY 3 BECAUSE SYSTEM CALCULATES ACCRUED INTEREST FOR FRIDAY + WEEKEND
CAST([dbo].[GETBONDACCRUEDINTEREST](COUPON_RATE,
SED.NOMINAL_AMOUNT_BANK, LAST_COUPON_PAYMENT, @TIMECODE) AS DECIMAL(10,2)) +
CAST([dbo].[GETBONDACCRUEDINTERESTADJ](@TIMECODE,
EXTERNAL_ID_NUMBER, 3) AS DECIMAL(10,2))

WHEN @TIMECODE IN (SELECT FORMAT(DATEADD(DAY, -1,


HOLIDAY_DATE),'yyyyMMdd') FROM #Holidays) THEN -- HOLIDAY DATE -1 BECAUSE IT ACCRUES THE
DAY BEFORE THE HOLIDAY. DIVIDE BY 2 BECAUSE SYSTEM CALCULATES ACCRUED INTEREST FOR DAY
+HOLIDAY
CAST([dbo].[GETBONDACCRUEDINTEREST](COUPON_RATE,
SED.NOMINAL_AMOUNT_BANK, LAST_COUPON_PAYMENT, @TIMECODE) AS DECIMAL(10,2)) +

6|Page
CAST([dbo].[GETBONDACCRUEDINTERESTADJ](@TIMECODE,
EXTERNAL_ID_NUMBER, 2) AS DECIMAL(10,2))

ELSE
[dbo].[GETBONDACCRUEDINTEREST](COUPON_RATE,
SED.NOMINAL_AMOUNT_BANK, LAST_COUPON_PAYMENT, @TIMECODE)
END AS ACCRUED_INTEREST

FROM HISTORY_T24RPT_SEM AS SEM


JOIN HISTORY_T24RPT_SED AS SED ON SED.SECURITY_ID = SEM.EXTERNAL_ID_NUMBER AND
SED.TIMECODE = @TIMECODE
LEFT JOIN T24RPT_CUS AS CUS ON CUS.CUSTOMER_T24_ID = SEM.ISSUER_ID
LEFT JOIN VW_T24CUSTOMERS AS DEP ON DEP.ID = SED.DEPOSITORY
LEFT JOIN LU_RCC_RATING AS RAT_M ON CUS.MOODYS_RATING = RAT_M.ID
LEFT JOIN LU_RCC_RATING AS RAT_SP ON CUS.STANDARDS_AND_POOR_RATING = RAT_SP.ID
WHERE EXTERNAL_ID_NUMBER IN ('800000-057', '800000-065', '800000-086', '800000-
076', '800000-087') AND DEAL_ID LIKE '%SCTR%' AND SEM.TIMECODE = @TIMECODE
--WHERE PRODUCT_TYPE BETWEEN 1000 AND 1032 AND DEAL_ID LIKE '%SCTR%' AND
SEM.TIMECODE = @TIMECODE
)

SELECT B_CTE.* , B_CTE.AMORTISED_COST - (ABS(PREM_AMORT.DEBIT_CREDIT_AMOUNT_LC)) AS


NEW_AMORTISED_COST
FROM BONDS_CTE AS B_CTE
LEFT JOIN
(
SELECT DISTINCT SPR.T24_SECURITY_ID, DEBIT_CREDIT_AMOUNT_LC
FROM T24RPT_CRF AS CRF
INNER JOIN T24RPT_GLA AS GLA ON RTRIM(CRF.CRF_KEY) = RTRIM(GLA.CRF_KEY)
INNER JOIN T24RPT_SPR AS SPR ON RTRIM(GLA.CRF_KEY_PART_10) =
RTRIM(REPLACE(UNIQUE_SHORT_CODE_FOR_EACH_SECURITY,'.','\'))
WHERE DEBIT_CREDIT_BALANCE_INDICATOR IN ('C','D') AND CRF.CRF_KEY LIKE '%50611%') AS
PREM_AMORT
ON B_CTE.EXTERNAL_ID_NUMBER = PREM_AMORT.T24_SECURITY_ID

DROP TABLE #Holidays

END

GO

Sample

7|Page
RPT_MM_T24

Columns

 CATEGORY
 EXTERNAL ID NUMBER
 OBJECT CURRENCY
 DEAL DATE
 CURRENT INTEREST RATE
 FINAL MATURITY DATE
 INTEREST RATE KEY
 PRINCIPAL
 COUNTRY
 NAME 1
 RESIDENCE
 ACCRUAL
 NATIONALITY
 PRINCIPAL
 EUR
 INDUSTRY
 SECTOR
 TARGET
 ACCRUAL
 EUR
 CUSTOMER STATUS
 MNEMONIC
 MISUNITS
 GROUP COMPANY CODE
 ISGROUP
 NACEL2
 NACEL1

8|Page
Query

DECLARE @TIMECODE varchar(50)


SET @TIMECODE= '20190701' --Declared timecode for this example

SELECT CAT.DESCRIPTION CATEGORY, RTRIM(LTRIM(EXTERNAL_ID_NUMBER)) EXTERNAL_ID_NUMBER ,


CAST(M.DEAL_DATE AS DATETIME) DEAL_DATE ,CAST(M.INTEREST_DUE_DATE AS DATETIME)
INTEREST_DUE_DATE ,
m.CURRENT_INTEREST_RATE,M.INTEREST_RATE_KEY,
M.OBJECT_CURRENCY,
ABS(COALESCE( (SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE =
@TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='LIVECR' ) ,
(SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE = @TIMECODE AND
EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='LIVEDB' ))) PRINCIPAL,
ABS(COALESCE((SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE = @TIMECODE
AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='50015' ) ,
(SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE = @TIMECODE AND
EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='51010' ))) ACCRUAL,

ABS(DBO.TOMARKETEURO_T24( COALESCE( (SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN


WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE
='LIVECR' ) ,(SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE = @TIMECODE
AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='LIVEDB' )) ,
M.OBJECT_CURRENCY,@TIMECODE )) PRINCIPALEUR,
ABS(DBO.TOMARKETEURO_T24( COALESCE( (SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE
='50015' ),(SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE = @TIMECODE
AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='51010' ) ) ,
M.OBJECT_CURRENCY,@TIMECODE )) ACCRUALEUR,
C.*
FROM HISTORY_T24RPT_MNM M
LEFT JOIN VW_T24CUSTOMERS C ON C.ID = M.T24_CUSTOMER_ID
LEFT JOIN LU_CATEGORY CAT ON CAT.ID = M.T24_CATEGORY
WHERE M.TIMECODE = @TIMECODE AND CONTRACT_RECORD_STATUS ='CUR'
ORDER BY 1

Sample

9|Page
RPT_NOSTRO_T24

Columns:

 EXTERNAL ID NUMBER
 NAME 1
 NATIONALITY
 SECTOR
 INDUSTRY
 TARGET
 COUNTRY1
 RESIDENCE
 OBJECT CURRENCY
 COUNTRY
 NACEL1
 NACEL2
 GROUP COMPANY CODE
 MISUNITS
 EURBALANCE
 BALANCE

Query:

DECLARE @TIMECODE varchar(50)


SET @TIMECODE= '20190701' --Declared timecode for this example

SELECT EXTERNAL_ID_NUMBER,M.OBJECT_CURRENCY,ISNULL(CAST(BN.BALANCE_IN_OC AS
DECIMAL(15,2)),0) * -1 BALANCE
,DBO.TOMARKETEURO_T24( ISNULL(CAST(BN.BALANCE_IN_OC AS DECIMAL(15,2)),0) * -1
,M.OBJECT_CURRENCY,@TIMECODE) EURBALANCE,

C.*

FROM HISTORY_T24RPT_ACC M
LEFT JOIN HISTORY_T24RPT_BLN BN ON BN.EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND
BN.TIMECODE = @TIMECODE
LEFT JOIN VW_T24CUSTOMERS C ON C.ID = M.CUSTOMER_ID
WHERE M.TIMECODE =@TIMECODE AND M.CATEGORY = 5000
AND (BN.ASSET_TYPE NOT IN ('CONTDB', 'CONTDBBL', 'CONTCR', 'CONTCRBL')
OR BN.ASSET_TYPE IS NULL)
ORDER BY 1

10 | P a g e
Sample

RPT_DCS_EX

Columns

 ACCRUAL EUR
 PRINCIPAL EUR
 ID
 EXTERNAL ID NUMBER
 NAME 1
 VALUE DATE
 END DATE
 RESIDENCE
 NATIONALITY
 OBJECT CURRENCY
 COUNTRY
 CURRENT INTEREST RATE
 INDUSTRY
 SECTOR
 TARGET
 CUSTOMER STATUS
 MNEMONIC
 MISUNITS
 GROUP COMPANY CODE
 MISCOUNTRY
 NACEL2
 NACEL1
 MIS GREEK
 DCS
 IS SHIPPING
 INDUSTRY CODE
 ISGROUP

11 | P a g e
Query:
This report runs by using stored procedure name RPT_DCS_CONTRACT

USE [ActiveDW]
GO

/****** Object: StoredProcedure [dbo].[RPT_DCS_CONTRACT] Script Date: 02/07/2019


13:21:09 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[RPT_DCS_CONTRACT]


@TIMECODE VARCHAR(8)
AS

SELECT RTRIM(LTRIM(EXTERNAL_ID_NUMBER)) EXTERNAL_ID_NUMBER ,M.OBJECT_CURRENCY,


M.OPEN_DATE, CAST (M.VALUE_DATE AS DATETIME) VALUE_DATE,CAST(M.END_DATE AS DATETIME)
END_DATE, CURRENT_INTEREST_RATE,
ABS( (SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE = @TIMECODE AND
EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='LIVECR' ) )PRINCIPAL,
ABS((SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE = @TIMECODE AND
EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='50015' ) ) ACCRUAL,
ABS(DBO.TOMARKETEURO_T24((SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE
= @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='LIVECR' ) ,
M.OBJECT_CURRENCY, @TIMECODE) ) PRINCIPALEUR,
ABS(DBO.TOMARKETEURO_T24((SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE
= @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='50015' ),
M.OBJECT_CURRENCY, @TIMECODE) ) ACCRUALEUR,
C.*,
dbo.[GETJOINTTIMEDEPOSITHOLDERS](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) JOINT_HOLDERS,
CASE WHEN [dbo].[GETJOINTTIMEDEPOSITHOLDERSCOUNT](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) =
0 THEN 1 ELSE
[dbo].[GETJOINTTIMEDEPOSITHOLDERSCOUNT](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) + 1 END
[JOINT_HOLDERS_COUNT]
,C.ID CUSTOMERID
INTO #DCS_TMP
FROM HISTORY_T24RPT_TED M
LEFT JOIN VW_T24CUSTOMERS C ON C.ID = M.T24_CUSTOMER_ID
WHERE M.TIMECODE =@TIMECODE AND CONTRACT_RECORD_STATUS ='CUR'

UNION ALL

SELECT EXTERNAL_ID_NUMBER,M.OBJECT_CURRENCY,NULL OPENDATE, NULL VALUEDATE, NULL


MATURITYDATE,

(SELECT CREDIT_INTEREST_RATE FROM HISTORY_T24RPT_IR2 WHERE EXTERNAL_ID_NUMBER


=M.EXTERNAL_ID_NUMBER
AND TIMECODE =@TIMECODE) CURRENT_INTEREST,
ABS(CAST( RTRIM(ISNULL(CAST(BN.BALANCE_IN_OC AS DECIMAL(15,2)),0)) AS numeric(15,2)) )
BALANCE,
ABS(CAST(RTRIM((SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE =
@TIMECODE AND LTRIM(RTRIM(EXTERNAL_ID)) = RTRIM(LTRIM(M.EXTERNAL_ID_NUMBER)) AND
ASSET_TYPE ='50000' )) AS numeric(15,2)) ) ACCRUAL,

12 | P a g e
ABS(CAST(RTRIM( DBO.TOMARKETEURO_T24( ISNULL(CAST(BN.BALANCE_IN_OC AS
DECIMAL(15,2)),0) ,M.OBJECT_CURRENCY,@TIMECODE)) AS NUMERIC(15,2))) EURBALANCE,
ABS(CAST(RTRIM(DBO.TOMARKETEURO_T24((SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE
='50000' ), M.OBJECT_CURRENCY, @TIMECODE)) AS numeric(15,2)) ) ACCRUALEUR,
C.*,
dbo.[GETJOINTTIMEDEPOSITHOLDERS](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))),
CASE WHEN [dbo].[GETJOINTTIMEDEPOSITHOLDERSCOUNT](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) =
0 THEN 1 ELSE
[dbo].[GETJOINTTIMEDEPOSITHOLDERSCOUNT](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) + 1 END
[COUNT_INCLUDING_PRIMARY]
,C.ID CUSTOMERID
FROM HISTORY_T24RPT_ACC M
LEFT JOIN HISTORY_T24RPT_BLN BN ON BN.EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND
BN.TIMECODE = @TIMECODE
LEFT JOIN VW_T24CUSTOMERS C ON C.ID = M.CUSTOMER_ID
LEFT JOIN Migration.dbo.ACC_ACCOUNT A ON A.OUR_EXT_ACCT_NO = M.EXTERNAL_ID_NUMBER
--Added the CLIENTS ACCOUNT categerory 8999
WHERE M.TIMECODE =@TIMECODE AND M.CATEGORY IN (1000, 1030, 8999)
--Filters out the rows having ASSET_TYPE equal to 'CONTDB', 'CONTDBBL', 'CONTCR',
'CONTCRBL'.
--This removes the unecessary two rows from the report.
AND (BN.ASSET_TYPE NOT IN ('CONTDB', 'CONTDBBL', 'CONTCR', 'CONTCRBL') OR
BN.ASSET_TYPE IS NULL)

SELECT ISNULL(ACCRUALEUR/T.JOINT_HOLDERS_COUNT,0)
ACCRUAL_EUR,ISNULL(PRINCIPALEUR/T.JOINT_HOLDERS_COUNT,0) PRINCIPAL_EUR,
T.EXTERNAL_ID_NUMBER,
T.VALUE_DATE,
T.END_DATE,
T.OBJECT_CURRENCY,
T.CURRENT_INTEREST_RATE,
C.ID,
C.NAME_1,
C.RESIDENCE,
C.NATIONALITY,
C.COUNTRY,
C.INDUSTRY,
C.SECTOR,
C.TARGET,
C.CUSTOMER_STATUS,
C.MNEMONIC,
C.MISUNITS,
C.MISCOUNTRY,
C.GROUP_COMPANY_CODE,
C.NACEL2,
C.NACEL1,
C.MIS_GREEK,
C.IS_SHIPPING,
C.ISGROUP,
C.INDUSTRY_CODE,
C.DCS

FROM #DCS_TMP T
JOIN VW_T24CUSTOMERS C ON C.ID = T.CUSTOMERID

UNION ALL
SELECT ISNULL(ACCRUALEUR/T.JOINT_HOLDERS_COUNT,0)
ACCRUAL_EUR,ISNULL(PRINCIPALEUR/T.JOINT_HOLDERS_COUNT,0) PRINCIPAL_EUR,

13 | P a g e
T.EXTERNAL_ID_NUMBER,
T.VALUE_DATE,
T.END_DATE,
T.OBJECT_CURRENCY,
T.CURRENT_INTEREST_RATE,
C.ID,
C.NAME_1,
C.RESIDENCE,
C.NATIONALITY,
C.COUNTRY,
C.INDUSTRY,
C.SECTOR,
C.TARGET,
C.CUSTOMER_STATUS,
C.MNEMONIC,
C.MISUNITS,
C.MISCOUNTRY,
C.GROUP_COMPANY_CODE,
C.NACEL2,
C.NACEL1,
C.MIS_GREEK,
C.IS_SHIPPING,
C.ISGROUP,
C.INDUSTRY_CODE,
C.DCS
FROM #DCS_TMP T
JOIN T24RPT_CTM REL ON REL.EXTERNALT24_ID = T.EXTERNAL_ID_NUMBER
JOIN VW_T24CUSTOMERS C ON C.ID = REL.RELATED_ENTITY_T24_ID

ORDER BY 3
--2281

SELECT * FROM #DCS_TMP

GO

Sample:

14 | P a g e
RPT_LOANS_T24

Columns:

 EXTERNAL ID NUMBER
 CATEGORY
 OBJECT CURRENCY
 OVERDUEPRIN
 VALUEDATE
 OVERDUEACCRUAL
 MATURITYDATE
 LOANTYPE
 ACCRUAL
 TYPE OF RESTRUCTURING
 OVERDUEPRIN EUR
 OVERDUEINTEREST
 OVERDUEINTEREST_EUR
 FOREBORNE
 COUNTRY
 CURRENT INTEREST RATE
 OVERDUEACCRUAL EUR
 INTEREST RATE SPREAD
 PRINCIPAL
 ACCRUAL EUR
 PRINCIPAL EUR
 IFRSCODE
 PDSTATUS
 PDDAYS
 NAME 1
 RESIDENCE
 NATIONALITY
 INDUSTRY
 SECTOR
 TARGET
 CUSTOMER STATUS
 MNEMONIC
 MISUNITS
 ISGROUP

15 | P a g e
 GROUP COMPANY CODE
 NACEL2
 NACEL1

Query:

This report runs by using stored procedure name RPT_LOAN

USE [ActiveDW]
GO

/****** Object: StoredProcedure [dbo].[RPT_LOAN] Script Date: 02/07/2019 13:29:07


******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[RPT_LOAN]


@TIMECODE VARCHAR(8)
AS
SELECT RTRIM(M.EXTERNAL_ID_NUMBER) EXTERNAL_ID_NUMBER,
CAT.DESCRIPTION CATEGORY,
M.OBJECT_CURRENCY,
CAST( M.START_DATE AS DATETIME) VALUEDATE,
CAST(M.END_DATE AS DATETIME) MATURITYDATE,
CASE M.INTEREST_RATE_TYPE
WHEN 1 THEN 'FIXED'
WHEN 2 THEN 'FLOAT'
ELSE '*UNDEFINED*'
END LOANTYPE,
RT.DESCRIPTION TYPE_OF_RESTRUCTURING,
M.FOREBORNE,
M.CURRENT_INTEREST_RATE,
M.INTEREST_RATE_SPREAD,
(SELECT
SUM(ISNULL(CAST(BALANCE_IN_OC AS numeric(15,2)) ,0))
FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND
ASSET_TYPE IN ('OVERDUEPR','NABPR','NABIN') ) AS OVERDUEPRIN,
CAST( ISNULL((SELECT
BALANCE_IN_OC
FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID =
M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='OVERDUEIN' ) ,0) AS NUMERIC(15,2)) +
CAST(ISNULL((SELECT BALANCE_IN_OC
FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID =
M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='51001' ),0) AS numeric(15,2)) +
ISNULL((SELECT BALANCE_IN_OC
FROM ActiveDW.dbo.HISTORY_T24RPT_BLN

16 | P a g e
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID =
M.EXTERNAL_ID_NUMBER AND ASSET_TYPE IN ('51005','51002SP') ),0) AS OVERDUEINTEREST,
(SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE =
@TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='51002' ) AS
OVERDUEACCRUAL,
(SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE =
@TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='51010' ) AS
ACCRUAL,
--(SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE =
@TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='LIVEDB' )
PRINCIPAL,
(SELECT
SUM( CAST(BALANCE_IN_OC AS numeric(15,2)))
FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND
ASSET_TYPE IN('LIVEDB','50020') ) AS PRINCIPAL,
DBO.[TOMARKETEURO_T24]( (SELECT

SUM(ISNULL(CAST(BALANCE_IN_OC AS numeric(15,2)) ,0))


FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND
EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE IN ('OVERDUEPR','NABPR','NABIN') )
,OBJECT_CURRENCY, @TIMECODE) AS OVERDUEPRIN_EUR,
(SELECT
[dbo].[TOMARKETEURO_T24](BALANCE_IN_OC,OBJECT_CURRENCY
,@TIMECODE)
FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND
ASSET_TYPE ='51002' ) AS OVERDUEACCRUAL_EUR,
(SELECT
[dbo].[TOMARKETEURO_T24](BALANCE_IN_OC,OBJECT_CURRENCY
,@TIMECODE)
FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND
ASSET_TYPE ='51010' ) AS ACCRUAL_EUR,
--(SELECT [dbo].[TOMARKETEURO_T24](BALANCE_IN_OC,OBJECT_CURRENCY
,@TIMECODE) FROM HISTORY_T24RPT_BLN WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID =
M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='LIVEDB' ) PRINCIPAL_EUR,
(SELECT
SUM( [dbo].[TOMARKETEURO_T24](BALANCE_IN_OC,OBJECT_CURRENCY
,@TIMECODE))
FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND
ASSET_TYPE IN('LIVEDB','50020') ) AS PRINCIPAL_EUR,
CAST(ISNULL((SELECT

[dbo].[TOMARKETEURO_T24](BALANCE_IN_OC,OBJECT_CURRENCY ,@TIMECODE)
FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID =
M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='OVERDUEIN' ) , 0) AS numeric(15,2)) +
CAST(ISNULL((SELECT

[dbo].[TOMARKETEURO_T24](BALANCE_IN_OC,OBJECT_CURRENCY ,@TIMECODE)
FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID =
M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='51001' ),0) AS numeric(15,2)) +
ISNULL(DBO.TOMARKETEURO_T24((SELECT

BALANCE_IN_OC
FROM
ActiveDW.dbo.HISTORY_T24RPT_BLN

17 | P a g e
WHERE TIMECODE =
@TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE IN
('51005','51002SP') ),OBJECT_CURRENCY,@TIMECODE),0) AS OVERDUEINTEREST_EUR,
IFRS.IFRS,
LS.IMPAIRED,
PD.DAYS,
PDS.DESCRIPTION AS PDSTATUS,
C.*
FROM HISTORY_T24RPT_LNS M
LEFT JOIN VW_T24CUSTOMERS C ON C.ID = M.CUSTOMER_ID
LEFT JOIN LU_CATEGORY CAT ON CAT.ID = M.T24_CATEGORY
LEFT JOIN LU_RESTRUCTURING_TYPE RT ON RT.ID = M.TYPE_OF_RESTRUCTURING
LEFT JOIN VW_LOANSTATUS LS ON LS.EXTERNAL_ID_NUMBER = M.EXTERNAL_ID_NUMBER AND
LS.TIMECODE = @TIMECODE
LEFT JOIN LU_INDUSTRY_IFRS IFRS ON IFRS.T24ID = RTRIM(LTRIM(C.INDUSTRY_CODE)) AND
IFRS.LOANSTATUSID = LS.IMPAIRED
LEFT JOIN VW_LOANSPD PD ON PD.EXTERNAL_ID = M.EXTERNAL_ID_NUMBER
LEFT JOIN LU_PD_STATUS PDS ON PDS.ID = ISNULL(PD.PDSTATUSID,0)
WHERE M.TIMECODE =@TIMECODE
ORDER BY 1

GO

Sample:

18 | P a g e
RPT_TD_T24

Columns:

 ID
 EXTERNAL ID NUMBER
 PRINCIPAL
 OPEN DATE
 OBJECT CURRENCY
 VALUE DATE
 ACCRUAL
 END DATE
 ACCRUALEUR
 CURRENT INTEREST RATE
 PRINCIPALEUR
 COUNTRY
 NAME 1
 RESIDENCE
 NATIONALITY
 INDUSTRY
 SECTOR
 TARGET
 CUSTOMER STATUS
 MNEMONIC
 MISUNITS
 GROUP COMPANY CODE
 MISCOUNTRY
 NACEL2
 NACEL1
 JOINT HOLDERS
 MIS GREEK
 JOINT HOLDERS COUNT
 IS SHIPPING
 ISGROUP

19 | P a g e
Query:

This report runs by using stored procedure name RPT_TIMEDEPOSIT


USE [ActiveDW]
GO

/****** Object: StoredProcedure [dbo].[RPT_TIMEDEPOSIT] Script Date: 02/07/2019


13:31:44 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[RPT_TIMEDEPOSIT]


@TIMECODE VARCHAR(8)
AS

SELECT RTRIM(LTRIM(EXTERNAL_ID_NUMBER)) EXTERNAL_ID_NUMBER ,M.OBJECT_CURRENCY,


M.OPEN_DATE, CAST (M.VALUE_DATE AS DATETIME) VALUE_DATE,CAST(M.END_DATE AS DATETIME)
END_DATE, CURRENT_INTEREST_RATE,
ABS( (SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE = @TIMECODE AND
EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='LIVECR' ) )PRINCIPAL,
ABS((SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE = @TIMECODE AND
EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='50015' ) ) ACCRUAL,
ABS(DBO.TOMARKETEURO_T24((SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE
= @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='LIVECR' ) ,
M.OBJECT_CURRENCY, @TIMECODE) ) PRINCIPALEUR,
ABS(DBO.TOMARKETEURO_T24((SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE
= @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE ='50015' ),
M.OBJECT_CURRENCY, @TIMECODE) ) ACCRUALEUR,
C.*,
dbo.[GETJOINTTIMEDEPOSITHOLDERS](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) JOINT_HOLDERS,
CASE WHEN [dbo].[GETJOINTTIMEDEPOSITHOLDERSCOUNT](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) =
0 THEN 1 ELSE
[dbo].[GETJOINTTIMEDEPOSITHOLDERSCOUNT](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) +1 END
[JOINT_HOLDERS_COUNT]
FROM HISTORY_T24RPT_TED M
LEFT JOIN VW_T24CUSTOMERS C ON C.ID = M.T24_CUSTOMER_ID
WHERE M.TIMECODE =@TIMECODE AND CONTRACT_RECORD_STATUS ='CUR'

UNION ALL

SELECT EXTERNAL_ID_NUMBER,M.OBJECT_CURRENCY,NULL OPENDATE, NULL VALUEDATE, NULL


MATURITYDATE,

(SELECT CREDIT_INTEREST_RATE FROM HISTORY_T24RPT_IR2 WHERE EXTERNAL_ID_NUMBER


=M.EXTERNAL_ID_NUMBER
AND TIMECODE =@TIMECODE) CURRENT_INTEREST,
ABS(CAST( RTRIM(ISNULL(CAST(BN.BALANCE_IN_OC AS DECIMAL(15,2)),0)) AS numeric(15,2)) )
BALANCE,
ABS(CAST(RTRIM((SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN WHERE TIMECODE =
@TIMECODE AND LTRIM(RTRIM(EXTERNAL_ID)) = RTRIM(LTRIM(M.EXTERNAL_ID_NUMBER)) AND
ASSET_TYPE ='50000' )) AS numeric(15,2)) ) ACCRUAL,

ABS(CAST(RTRIM( DBO.TOMARKETEURO_T24( ISNULL(CAST(BN.BALANCE_IN_OC AS


DECIMAL(15,2)),0) ,M.OBJECT_CURRENCY,@TIMECODE)) AS NUMERIC(15,2))) EURBALANCE,

20 | P a g e
ABS(CAST(RTRIM(DBO.TOMARKETEURO_T24((SELECT BALANCE_IN_OC FROM HISTORY_T24RPT_BLN
WHERE TIMECODE = @TIMECODE AND EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND ASSET_TYPE
='50000' ), M.OBJECT_CURRENCY, @TIMECODE)) AS numeric(15,2)) ) ACCRUALEUR,
C.*,
dbo.[GETJOINTTIMEDEPOSITHOLDERS](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) JOINT_HOLDERS,
CASE WHEN [dbo].[GETJOINTTIMEDEPOSITHOLDERSCOUNT](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) =
0 THEN 1 ELSE
[dbo].[GETJOINTTIMEDEPOSITHOLDERSCOUNT](RTRIM(LTRIM(EXTERNAL_ID_NUMBER))) +1 END
[COUNT_INCLUDING_PRIMARY]
FROM HISTORY_T24RPT_ACC M
LEFT JOIN HISTORY_T24RPT_BLN BN ON BN.EXTERNAL_ID = M.EXTERNAL_ID_NUMBER AND
BN.TIMECODE = @TIMECODE
LEFT JOIN VW_T24CUSTOMERS C ON C.ID = M.CUSTOMER_ID
LEFT JOIN Migration.dbo.ACC_ACCOUNT A ON A.OUR_EXT_ACCT_NO = M.EXTERNAL_ID_NUMBER
WHERE M.TIMECODE =@TIMECODE AND M.CATEGORY = 1030

GO

Sample:

--------End of Request--------

21 | P a g e

Das könnte Ihnen auch gefallen