lets say we have a table BNK_ACCT_GRP_ST with these columns:
Column Name ID Pk Null? Data Type
BNK_ACCT_GRP_ST_ID1 1 N NUMBER (15)
BNK_ACCT_ID 2 N NUMBER (15)
BNK_ACCT_GRP_ID 3 N NUMBER (15)
BNK_ACCT_GRP_ST_CD 4 N NUMBER (4)
BNK_ACGRP_ST_SRC_EVNT_TYP_CD 8 N NUMBER (4)
BNK_ACGRP_ST_SRC_TRAN_ID 9 N NUMBER (15)
FNCL_GRP_ID 10 N NUMBER (15)
CREN_DT 12 N DATE
LAST_UPD_DT 13 N DATE
PCSG_DT 14 N DATE
BNK_ACCT_GRP_ST_SEQ_NO 15 N NUMBER (15)
its populated with bnk_accts data :
example#1:
BNK_ACCT_GRP_ST_ID BNK_ACCT_ID BNK_ACCT_GRP_ID BNK_ACCT_GRP_ST_CD BNK_ACGRP_ST_SRC_EVNT_TYP_CD FNCL_GRP_ID BNK_ACCT_GRP_ST_SEQ_NO
2282 150627009 1724 4 150 111111111 2
2283 150627009 1440 2 149 111111112 1
1908 150627009 1725 2 134 111111111 1
1906 150627009 1441 2 135 111111111 7
and example #2:
BNK_ACCT_GRP_ST_ID BNK_ACCT_ID BNK_ACCT_GRP_ID BNK_ACCT_GRP_ST_CD BNK_ACGRP_ST_SRC_EVNT_TYP_CD FNCL_GRP_ID BNK_ACCT_GRP_ST_SEQ_NO
2364 150275031 1435 2 114 133333333 3
2365 150275031 1436 7 116 133333333 2
1902 150275031 1435 1 72 133333333 2
1903 150275031 1435 2 36 133333333 1
1904 150275031 1436 5 74 133333333 1
where:
- BNK_ACCT_GRP_ST_ID is autoincrement field,
- BNK_ACCT_ID is actualy bank account # id,
- BNK_ACCT_GRP_ID is grp id (which always increasing),
- BNK_ACCT_GRP_ST_CD, BNK_ACGRP_ST_SRC_EVNT_TYP_CD and BNK_ACGRP_ST_SRC_TRAN_ID are some id’s for trans purposes,
- FNCL_GRP_ID – id of the bankiing insitution where this bank acc belongs to
what i need : to create a query to pull latest BNK_ACCT_GRP_ID for each BNK_ACCT_ID based on FNCL_GRP_ID. here one bank acc can belongs to one or more then one fncl instituion, so the query should return this output:
for example#1:
FNCL_GRP_ID BNK_ACCT_ID BNK_ACCT_GRP_ID
111111111 150627009 1725
111111112 150627009 1440
for example#2:
FNCL_GRP_ID BNK_ACCT_ID BNK_ACCT_GRP_ID
133333333 150275031 1436
I have tried a lot of the things lately, such as a combo of
(select distinct BNK_ACCT_ID,FNCL_GRP_ID) join to rank() over (partiton by )
but with no luck.
Try this: