Saya memiliki tabel dengan 2 kolom, LookUpID dan LookUpDate.

Beberapa LookUpID memiliki beberapa LookUpDate. Saya ingin semua LookUpId dengan LookUpDate terbaru.

Kode yang saya coba adalah:

 SELECT DISTINCT LookUpID, LookUpDate
 FROM LookUpTable
 WHERE LookUpID in ('ID1','ID2','ID3','......')
   AND LookUpDate = Max(LookUpDate)

Itu jelas tidak berhasil.

Bagaimana cara mencari ID dengan tanggal terbaru?

-1
user1777929 15 Maret 2017, 22:21

2 jawaban

Jawaban Terbaik

Anda mencari GROUP BY dan MAX():

SELECT LookUpID, MAX(LookUpDate)
FROM LookUpTable
WHERE LookUpID in ('ID1','ID2','ID3','......')
GROUP BY LookUpID;

Selain itu, saya terkejut bahwa orang tahu SELECT DISTINCT sebelum mereka tahu GROUP BY. GROUP BY lebih umum, lebih kuat, dan lebih mendasar merupakan bagian dari SQL. SELECT DISTINCT biasanya hanya singkatan.

1
Gordon Linoff 15 Maret 2017, 19:23

Saya tidak tahu mengapa Anda menggunakan distinct

Jika saya tidak salah, ini adalah pertanyaan Anda

select 
  LookUpID, 
  LookUpDate 
FROM 
  [TotalQtySalesParent]
group by LookUpDate ,LookUpID
having LookUpDate =max(LookUpDate)
-1
mohamed hafil 15 Maret 2017, 19:56