1

これが私が実行するクエリです

SELECT cl.cl_id, cc_rego, cc_model, cl_dateIn, cl_dateOut
FROM courtesycar cc LEFT JOIN courtesyloan cl
ON cc.cc_id = cl.cc_id

結果:

  1. 1 NXI955 プラド 2013-10-24 11:48:38 NULL
  2. 2 RJI603 アバロン 2013-10-24 11:48:42 2013-10-24 11:54:18
  3. 3 RJI603 アバロン 2013-10-24 12:01:40 NULL

私が望んでいた結果は、値でグループ化し、cc_rego最新のcl_dateIn値を出力することです。(行 1、3 のみ表示)

date と group by 句で MAX を使用しようとしましたが、行 2 と 3 を組み合わせて、 と の両方の最高値を示していdateInますdateOut

4

1 に答える 1

1

問題を解決しました。

左結合を使用する代わりに、dateIn の MAX に埋め込む where 句に条件を追加しました

SELECT cll.cl_id, cc.cc_id, cc_rego, cc_model, cll.cl_dateIn, cll.cl_dateOut
FROM courtesycar cc, courtesyloan cll
WHERE cl_dateIn = ( 
  SELECT  MAX( cl.cl_dateIn )
  FROM courtesyloan cl
  WHERE cl.cc_id = cc.cc_id )
AND cc.cc_id = cll.cc_id
于 2013-10-31T03:16:37.633 に答える