我认为很容易解决的问题现在已经被窃听了很长一段时间。现在我需要你们的帮助。
在 Informix 中,我有一个像这样的“温度”表:
locId dtg 温度 100 2009-02-25 10:00 15 200 2009-02-25 10:00 20 300 2009-02-25 10:00 24 100 2009-02-25 09:45 13 300 2009-02-25 09:45 16 200 2009-02-25 09:45 18 400 2009-02-25 09:45 12 100 2009-02-25 09:30 11 300 2009-02-25 09:30 14 200 2009-02-25 09:30 15 400 2009-02-25 09:30 10
我正在尝试获取在过去 20 分钟内更新值的每个 locId 的最新温度。
所以我想要上表的结果是(假设我在 2009-02-25 10:10 运行查询):
locId dtg 温度 100 2009-02-25 10:00 15 200 2009-02-25 10:00 20 300 2009-02-25 10:00 24
使事情复杂化的另一件事是,我希望能够在 locId 上提供一个应该选择的列表。我的意思是使用类似“...locId IN (100,200,400)...”的东西
我尝试在子查询上使用连接(如SQL Query 中建议的那样获取最新价格),但我无法让它工作。即使没有额外的“最近 20 分钟内的更新”也不会。
选择 t.* 从温度作为吨 JOIN (select locId, max(dtg) from locId IN (100,200,400) group by locId) as l 关于 l.locId=t.locId 和 l.dtg=t.dtg 其中 locId 在 (100,200,400)
这个查询给了我 SQL 错误,但我找不到错误。是否有我找不到的错误,或者这种方式在 Informix 中是不可能的。
还是有其他的方法可以走?所有帮助表示赞赏。