-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTesting 3.sql
94 lines (87 loc) · 2.56 KB
/
Testing 3.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
SELECT MAX(LENGTH(merchantTitle))
FROM fss_daily_settlement;
SELECT MAX(transactionNr)
FROM fss_daily_transactions;
SELECT bsbm.merchantBsb
, m.merchantBankAccNr
, sum(dt.transactionAmount) AS value
, m.merchantAccountTitle
, (
SELECT to_char(floor(orgBsbNr / 1000), '000') || '-' || to_char(orgBsbNr - floor(orgBsbNr/1000) * 1000, 'FM000') || ' ' || orgBankAccount AS trace
FROM fss_organisation
) AS trace
FROM fss_daily_transactions dt
INNER JOIN fss_smartcard s
ON dt.cardId = s.cardId
INNER JOIN fss_terminal te
ON dt.terminalId = te.terminalId
INNER JOIN fss_terminal_type tet
ON te.terminalType = tet.typeName
INNER JOIN fss_merchant m
ON te.merchantId = m.merchantId
INNER JOIN
(
SELECT merchantBankBsb
, to_char(floor(merchantBankBsb / 1000), '000') || '-' || to_char(merchantBankBsb - floor(merchantBankBsb/1000) * 1000, 'FM000') AS merchantBsb
FROM fss_merchant
) bsbm
ON bsbm.merchantBankBsb = m.merchantBankBsb
WHERE dt.settlementStatus IS NULL
GROUP BY bsbm.merchantBsb
, m.merchantBankAccNr
, m.merchantAccountTitle;
BEGIN
ins_daily_settlement;
END;
/
CREATE OR REPLACE PROCEDURE ins_daily_settlement
AS
BEGIN
INSERT INTO fss_daily_settlement
(
merchantBsb
, merchantAccNum
, transaction
, merchantTitle
, trace
)
SELECT bsbm.merchantBsb
, m.merchantBankAccNr
, sum(dt.transactionAmount) AS value
, m.merchantAccountTitle
, (
SELECT to_char(floor(orgBsbNr / 1000), '000') || '-' || to_char(orgBsbNr - floor(orgBsbNr/1000) * 1000, 'FM000') || ' ' || orgBankAccount AS trace
FROM fss_organisation
) AS trace
FROM fss_daily_transactions dt
INNER JOIN fss_smartcard s
ON dt.cardId = s.cardId
INNER JOIN fss_terminal te
ON dt.terminalId = te.terminalId
INNER JOIN fss_terminal_type tet
ON te.terminalType = tet.typeName
INNER JOIN fss_merchant m
ON te.merchantId = m.merchantId
INNER JOIN
(
SELECT merchantBankBsb
, to_char(floor(merchantBankBsb / 1000), '000') || '-' || to_char(merchantBankBsb - floor(merchantBankBsb/1000) * 1000, 'FM000') AS merchantBsb
FROM fss_merchant
) bsbm
ON bsbm.merchantBankBsb = m.merchantBankBsb
WHERE dt.settlementStatus IS NULL
GROUP BY bsbm.merchantBsb
, m.merchantBankAccNr
, m.merchantAccountTitle;
COMMIT;
END;
/
CREATE OR REPLACE FUNCTION get_format_bsb(p_value VARCHAR2)
RETURN VARCHAR2
IS
BEGIN
RETURN substr(p_value ,1,3) || '-' || substr(p_value, 4,6);
END;
/
select get_format_bsb(merchantbankbsb)
from fss_merchant;