如何根据日期显示数据
本文关键字:显示 数据 日期 何根 | 更新日期: 2023-09-27 18:32:23
在我的数据库中有一个名为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。如何修改 where 条件,以便获得正确的输出。
string query = "select tree_no from talltree_master";
query += " where dtlastemas is NULL";
您希望那些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)
SQL 小提琴:http://sqlfiddle.com/#!3/371db/6
SELECT tree_no, MAX(dtlastemas)
FROM talltree_master
WHERE MAX(dtlastemas) IS NULL
GROUP BY tree_no