0

10 列を超えるテーブルで作業しています。列名の 1 つは、DATE 型 (形式はyyyy-mm-dd HH:MM:SS:mmm) の ASAT です。

最大日付のすべてのレコードを返す SQL クエリを探しています。JDBC呼び出しのためにJavaでそのクエリを使用しようとしています。

私はこれを試しました: Select * from tablename where ASAT in (select MAX(ASAT) from tablename)

しかし、レコードは返されません。

どんな助けでも本当に感謝しています.Thanks

4

3 に答える 3

0

どうですか:

SELECT MAX(Asat) FROM TableA;
SELECT MAX(Asat) FROM TableA GROUP BY Asat;
于 2016-11-02T14:59:27.273 に答える
0

自分で参加する場合は、テーブルの各コピーにエイリアスを設定することをお勧めします。個人的には、大規模なクエリで追跡する必要がある場合に備えて、表の文字に数字を付けて使用します。

Select * 
from tablename t1 
where t1.ASAT = (
    select MAX(t2.ASAT) 
    from tablename t2
)
于 2016-11-05T15:15:37.820 に答える
0

私があなたを理解しているなら、あなたはこのようなものを探していると思います。まず、主キーと MAX(ASAT) を含む CTE を作成します。次に、それに結合し、主キーが行の主キーと一致する場所を MAX(ASAT) で選択します。「ID」は複数の列である必要がある場合があることに注意してください。

with tbl_max_asat(id, max_asat) as (
  select id, max(asat) max_asat
  from tablename
  group by id
)
select * 
from tablename t
  join tbl_max_asat tma
    on t.id = tma.id;

今日編集されたので、この古い投稿がポップアップしました。多分私の答えはまだ誰かを助けるでしょう。:-)

于 2020-01-30T17:50:04.183 に答える