2

データベースに定期的に情報を収集するテーブルがあります。各行には、シリアル番号列 (SN) と日付列 (ReadDate)、および 8 つのチャネル列 (ch1-ch8) があります。1 つのクエリで各シリアル番号の最新のチャネル値をすべて取得したいと考えています。現在、クエリはすべてのシリアル番号のすべてのチャンネルを取得しています。唯一の問題は、最新の値を取得していないことです。最初の行を取得しているようです。

私がしようとしているものの例をsqlfiddle http://sqlfiddle.com/#!2/313cf/2に載せました

各シリアル番号の最新のチャネル値を取得するために何をしなければならないかについてのアイデアはありますか?

4

1 に答える 1

2
SELECT a.*
FROM    dials a INNER JOIN
        (
          SELECT  SN, MAX(RealReadDate) maxDate
          FROM    dials
          GROUP BY SN
          ) b ON a.SN = b.SN AND
                a.RealReadDate = b.maxDATE

SQLFiddleデモ

于 2012-10-29T16:16:25.320 に答える