我的意图是制作一份详细的报告,说明在过去的12个月和最后一个交易日期内哪些客户根本没有处理过。
select client.client_code,client.client_name,dealing_record.transaction_number,
transaction_type.transaction,dealing_record.deal_date
FROM client INNER JOIN dealing_record ON client.client_id=dealing_record.client_id
INNER JOIN Transaction_type ON
transaction_type.transaction_type_id=dealing_record.transaction_type_id
WHERE deal_date NOT BETWEEN to_date('07-Nov-2012') AND SYSDATE;
上面的sql代码生成
CLIENT_COD CLIENT_NAME TRANSA TRANS DEAL_DATE
---------- -------------------- ------ ----- ---------
C001 David clare D02 Sell 20-FEB-10
C002 James love D03 Buy 05-MAY-11
C004 Jame lee D05 Buy 05-JAN-12
C005 Kay Ade D07 Buy 05-DEC-11
以上结果恰好显示了我想要的所有但有一点问题。所有的客户都没有在过去的12个月内处理过,但大卫克莱尔在12个月之前和之前都处理过..目的是向那些在过去12个月内从未处理过的人展示。
答案 0 :(得分:1)
尝试这样的事情:
SELECT c.client_code,
c.client_name,
dr.transaction_number,
tt.TRANSACTION,
dr.deal_date
FROM client
INNER JOIN dealing_record dr ON c.client_id = dr.client_id
INNER JOIN Transaction_type tt ON tt.transaction_type_id = dr.transaction_type_id
WHERE c.client_id NOT IN (
SELECT client_id
FROM dealing_record
WHERE deal_date > '07-Nov-2012'
);
这将排除在'07-Nov-2012'