Informix 使用子查询
Informix using a subquery
我有一个 Informix DB V11.*.
有一个这样的Table。
(没有给出唯一字段)
DATE |TIME |NUMBER |STATUS |INFO
2015-01-09 |10:00:00 |123456 |A |Bla
2015-01-10 |09:00:00 |123456 |300 |Blu
2015-01-10 |07:00:00 |123456 |100 |Foo
2015-01-09 |03:00:00 |123456 |A |Bla
2015-01-10 |11:00:00 |123456 |C |Baa
2015-01-10 |14:00:00 |123456 |Q |Bla
现在我必须找到 STATUS 和 INFO
使用最新的 DATE 和 TIME 记录。
获得最大值不是问题
最新记录(在本例中为时间为“14:00:00”的记录)
问题是,根据“14:00:00”记录获取STATUS和INFO字段。
这样我就可以检索这样的结果:
STATUS |INFO
Q |Bla
这个查询将被用作子查询,所以它必须 return 一行,也许是连接的。
导致使用 as Subquery,我不能使用 SKIP 0 FIRST 1.
有什么想法吗?
想必这就是你想要的:
select first 1 *
from table t
order by date desc, time desc;
问题是您不能将其用作子查询除非它是 in from
子句。完成此操作的简单方法如下:
select . ..
from (select first 1 *
from table t
order by date desc, time desc
) first1 cross join
. . .
where . . .
然后您可以在查询的其余部分使用 first1
。
我有一个 Informix DB V11.*.
有一个这样的Table。 (没有给出唯一字段)
DATE |TIME |NUMBER |STATUS |INFO
2015-01-09 |10:00:00 |123456 |A |Bla
2015-01-10 |09:00:00 |123456 |300 |Blu
2015-01-10 |07:00:00 |123456 |100 |Foo
2015-01-09 |03:00:00 |123456 |A |Bla
2015-01-10 |11:00:00 |123456 |C |Baa
2015-01-10 |14:00:00 |123456 |Q |Bla
现在我必须找到 STATUS 和 INFO 使用最新的 DATE 和 TIME 记录。
获得最大值不是问题 最新记录(在本例中为时间为“14:00:00”的记录)
问题是,根据“14:00:00”记录获取STATUS和INFO字段。 这样我就可以检索这样的结果:
STATUS |INFO
Q |Bla
这个查询将被用作子查询,所以它必须 return 一行,也许是连接的。 导致使用 as Subquery,我不能使用 SKIP 0 FIRST 1.
有什么想法吗?
想必这就是你想要的:
select first 1 *
from table t
order by date desc, time desc;
问题是您不能将其用作子查询除非它是 in from
子句。完成此操作的简单方法如下:
select . ..
from (select first 1 *
from table t
order by date desc, time desc
) first1 cross join
. . .
where . . .
然后您可以在查询的其余部分使用 first1
。