【发布时间】:2009-11-23 15:39:08
【问题描述】:
我认为很容易解决的问题现在已经被窃听了很长一段时间了。现在我需要你们的帮助。
在 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 to get latest price 中所建议的那样),但我无法让它工作。即使没有额外的“最近 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 中是不可能的。
或者还有其他方法可以走吗?感谢所有帮助。
【问题讨论】:
-
你能解释一下“找不到错误”是什么意思吗?你的意思是没有错误信息,或者你不知道错误信息的原因?我们可以看到确切的错误消息吗?