【发布时间】:2021-02-07 09:46:03
【问题描述】:
我有以下两个表 card_accounts 和 account_transaction。
create table card_accounts(card_number number(16),account_number number(10),status char(1));
Insert into card_accounts(card_number,account_number,status)values(123456,000001,'A');
Insert into card_accounts(card_number,account_number,status)values(123456,000002,'A');
Insert into card_accounts(card_number,account_number,status)values(223456,000003,'A');
Insert into card_accounts(card_number,account_number,status)values(223456,000004,'A');
Insert into card_accounts(card_number,account_number,status)values(33456,000004,'A');
Insert into card_accounts(card_number,account_number,status)values(523456,000007,'A');
create table account_transaction(account_number number(16),transactionId number(10),created_date DATE);
Insert into account_transaction(account_number,transactionId,created_date)values(000001,543678,TO_DATE('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss'));
Insert into account_transaction(account_number,transactionId,created_date)values(000002,543679,TO_DATE('2003/05/03 21:02:34', 'yyyy/mm/dd hh24:mi:ss'));
Insert into account_transaction(account_number,transactionId,created_date)values(000003,543680,TO_DATE('2003/05/03 18:02:44', 'yyyy/mm/dd hh24:mi:ss'));
Insert into account_transaction(account_number,transactionId,created_date)values(000004,543681,TO_DATE('2003/05/03 17:02:44', 'yyyy/mm/dd hh24:mi:ss'));
Insert into account_transaction(account_number,transactionId,created_date)values(000007,543682,TO_DATE('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss'));
我想根据以下条件检索最近交易的帐号。当我使用 card_number 作为 key 时,检查 card_number 是否与两个 account_number 相关联,如果是,请转到 account_transaction 并返回有最近 created_date 的一方。如果 card_number 有两个以上的帐户或少于两个帐户,则不要执行任何操作。
我通过 card_number= 123456 时的预期输出
当我传递其他 card_numbers 时,不会检索任何内容,因为它不符合条件
【问题讨论】:
标签: sql oracle oracle11g oracle10g