在我的数据库中有一个名为talltree_master
的表。我想只显示那些从一开始就没有被阉割的记录(tree_no field
)。 dtlastemas
字段跟踪去雄日期,talltree_id
是表talltree_master
的主键。
对于前者请考虑以下数据
tree_no | talltree_id |dtlastemas
1 | 1 | 2008-01-09
2 | 2 |
3 | 3 | 2010-05-06
4 | 4 |
1 | 5 |
5 | 6 | 2001-02-06
2 | 7 | 2009-05-03
3 | 8 | 2010-01-01
6 | 9 |
注意:空白表示在完成去雄时特定树没有被去除。
我想显示的只是tree_no 4和6,因为这些树是唯一一个从一开始就没有被阉割的树,因为tree_no 1和2之前已被阉割过。
但是下面的查询显示tree_no
1,2,4和6.我如何修改条件,以便我得到正确的输出。
string query = "select tree_no from talltree_master";
query += " where dtlastemas is NULL";
答案 0 :(得分:0)
您希望那些dtlastemas
为空的记录从来没有dtlastemas
非空。像这样:
select tree_no
from talltree_master o
where o.dtlastemas is null
and not exists (
select *
from talltree_master i
where i.tree_no = o.tree_no
and dtlastemas is not null)
答案 1 :(得分:0)
SELECT tree_no, MAX(dtlastemas)
FROM talltree_master
WHERE MAX(dtlastemas) IS NULL
GROUP BY tree_no