私が解決するのは簡単なことだと思っていたことが、今ではかなり長い間バグになっています。今、私は皆さんからの助けが必要です。
Informix には、次のようなテーブル「温度」があります。
locId dtg temp 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 temp 100 2009-02-25 10:00 15 200 2009-02-25 10:00 20 300 2009-02-25 10:00 24
物事を複雑にするもう 1 つのことは、選択する必要がある locId のリストを提供できるようにしたいということです。「...locId IN (100,200,400)...」のようなものを使用することを意味します
サブクエリで結合を使用しようとしました (最新の価格を取得するための SQL クエリで提案されているように) が、機能しません。余分な「過去20分以内の更新」がなくても。
t.* を選択 t としての温度から JOIN (locId IN (100,200,400) を locId でグループ化した温度から locId, max(dtg) を選択) as l l.locId=t.locId および l.dtg=t.dtg で (100,200,400) の locId
このクエリでは SQL エラーが発生しますが、エラーが見つかりません。見つからないエラーがありますか、それとも Informix ではこの方法では不可能ですか。
それとも何か他の方法がありますか?すべての助けに感謝します。