我有2张格式低于
的表格 TableA TableB
ID1 Name Date ID1 Status
1 abc April 2000 1 open
2 xyz May 2000 2 closed
3 def March 2016 3 closed
4 pqr March 2016 4 open
使用以下查询
SELECT a.id1,
a.name,
a.date,
b.status
FROM TableA a
JOIN TableB b ON a.id1=b.id2
AND b.status='open'
UNION
SELECT a.id1,
a.name,
a.date,
b.status
FROM TableA a
JOIN TableB b ON a.id1=b.id2
AND b.status='closed'
AND a.date>'April 2014'
我得到以下结果集
a.id1 a.name a.date b.status
1 abc April 2000 open
3 def March 2016 closed
4 pqr March 2016 open
我的目的是显示给定ID的所有未结状态和最近2年的已关闭状态。 所以我的问题是,我们可以在一个查询中编写此查询以获得所有开放和最近2年的关闭状态吗? 请建议。
答案 0 :(得分:2)
我在单个查询中重写了您的查询。
select a.id1, a.name, a.date, b.status
from TableA a
join TableB b
on a.id1 = b.id2
where (b.status = 'closed' and a.date > 'April 2014')
or b.status = 'open'