【发布时间】:2021-03-26 08:07:30
【问题描述】:
这是我试图通过大量简化实现的一个示例。
我有一张这样的桌子:
CREATE TABLE temp_pt
(
pt_key number PRIMARY KEY
, history VARCHAR(20)
, country VARCHAR(2)
, currency VARCHAR(3)
, settlementday VARCHAR(10)
);
这个表中有一些记录,说如下:
insert into temp_pt(PT_KEY, history, country, currency, settlementday) values(1, 'MATCH', 'GB', 'GBP', '2020-12-01');
insert into temp_pt(PT_KEY, history, country, currency, settlementday) values(2, 'MATCH', 'GB', 'GBP', '2021-12-01');
insert into temp_pt(PT_KEY, history, country, currency, settlementday) values(3, 'MATCH', 'GB', 'EUR', '2020-12-01');
insert into temp_pt(PT_KEY, history, country, currency, settlementday) values(4, 'MATCH', 'GB', 'EUR', '2021-12-01');
insert into temp_pt(PT_KEY, history, country, currency, settlementday) values(5, 'MATCH', 'GI', 'GBP', '2020-12-01');
insert into temp_pt(PT_KEY, history, country, currency, settlementday) values(6, 'MATCH', 'GI', 'GBP', '2021-12-01');
insert into temp_pt(PT_KEY, history, country, currency, settlementday) values(7, 'MATCH', 'GI', 'EUR', '2020-12-01');
insert into temp_pt(PT_KEY, history, country, currency, settlementday) values(8, 'MATCH', 'GI', 'EUR', '2021-12-01');
insert into temp_pt(PT_KEY, history, country, currency, settlementday) values(9, 'MATCH', 'NL', 'GBP', '2020-12-01');
insert into temp_pt(PT_KEY, history, country, currency, settlementday) values(10, 'MATCH', 'NL', 'GBP', '2021-12-01');
insert into temp_pt(PT_KEY, history, country, currency, settlementday) values(11, 'MATCH', 'NL', 'EUR', '2020-12-01');
insert into temp_pt(PT_KEY, history, country, currency, settlementday) values(12, 'MATCH', 'NL', 'EUR', '2021-12-01');
我需要结算日 > 2020-12-31 的所有记录,但那些(货币为 GBP,国家/地区为 GB 或 GI)除外。这个怎么写?
【问题讨论】:
标签: sql oracle select subquery