的分日我有一个日志表是这样的:SQL:寻找最后的类型变化
line Date status Type
1 26.04.2016 08:58 IN 4
2 26.04.2016 08:59 OUT 80
3 26.04.2016 09:05 REZ 7
4 26.04.2016 09:06 IN 7
5 26.04.2016 09:22 EDIT 81
6 26.04.2016 09:23 EDIT 80
7 26.04.2016 09:24 OUT 80
8 26.04.2016 09:25 OUT 80
9 26.04.2016 09:25 OUT 80
“日期”是关键。
我想获取上次类型更改日期。在这个例子中,最后一个类型是“80”,它的最小日期是26.04.2016 09:23(第6行)。
我知道此时的最后一种类型(@lasttype = 80)。 但是,如果我跑select min(date) from table where type = @lasttype
,然后我得到的,而不是线6
线2我怎样才能获得“类型”在一个查询(6号线)的最后一块的分日期?我不想在后面和后面使用几个选择。
我只是尝试这个,但6号线不会再来:(
select max(date)
from
(
select min(date) as date, type
from MYTABLE
where type = '80'
group by type
) as t1
有没有一种简单的方法
非常感谢
编辑:? 好吧,我可以获得第6行:
select min(date) from MYTABLE where date > (select max(date) from MYTABLE where type <> @lasttype)
更有效的代码?
非常感谢您的回答...
您正在使用什么RDBMS? –
Microsoft Sql 2014 –
第6行是Type 80的最小值?第2行的时间比这少。此外,“上次类型更改日期”是什么意思?状态栏在您的要求中扮演什么角色? –