2017-06-20 4 views
0
id name school date 
1 John QVS 1/3/2000 
1 John RKS 1/4/2008 
2 Sera ACS 1/2/2009 
2 Sera WCS 1/4/2011 
3 Jack YUN 1/4/2014 
3 Jack KIL 1/3/2017 

Der Name, die Schule und das Datum stammten alle aus verschiedenen Tabellen, nämlich Name, Schule und Datum zusammen mit inneren verbinden.Wählen Sie die Zeile nur auf einem max Feld

Ich möchte nur die Zeile mit dem neuesten Datum auswählen. Das Ergebnis sollte sein:

id name school date 
1 John RKS 1/4/2008 
2 Sera WCS 1/4/2011 
3 Jack KIL 1/3/2017 
+0

Was haben Sie versucht? Es gibt viele Möglichkeiten, dies zu tun. –

+0

Gib mir dann ... Ich habe nicht versucht, coz ich weiß nicht, wo ich anfangen soll von –

+0

die erste Tabelle ist nicht eine Tabelle, sondern ein Ergebnis von einer verbundenen Abfrage –

Antwort

0

Try this:

select * from table t1 where not exists ( select 1 from table t2 where t1.id = t2.id and t1.name = t2.name and t1.date < t2.date )

+0

Theres 3 Tabellen kombiniert mit der ersten Liste über –

0

Sie diese nutzen können. Ich hoffe, es wird für dich funktionieren.

SELECT 
tb1.id 
,tb1.name 
,tb1.school 
,tb1.[date] 
FROM 
yourTable tb1 
where [date] IN 
(
SELECT MAX([date]) FROM yourTable tb2 WHERE tb1.id = tb2.id GROUP BY tb2.id 
) 
+0

gibt es keine TB1. Schule, seine tb2.school und tb3.date –

+0

Können Sie mir alle Tabellenstruktur geben? –

+0

Bitte lesen Sie von oben richtig –

0

Sie könnten Row_number verwenden. Wenn Sie alle Zeilen mit jeweils neuesten Termin möchten, verwenden Sie dann dense_rank oder rank

;with temp as 
(
    select id, 
      name, 
      school, 
      [date], 
      Row_number() over(partition by id order by [date] desc) as [Rn] 
      -- rank()\dense_rank() to get all latest date. 
    from yourTable 
) 
select  id, 
      name, 
      school, 
      [date] 
from temp 
where Rn = 1 

Demo Link: http://rextester.com/YTH8889

+0

Ich möchte immer noch den Wert des Datums –

+0

Sie können beliebige Spalten auswählen, ich benutze 'Select *', die Spalte "Datum" bereits enthält – TriV

+0

einige ID immer noch zu wiederholen ... Ich brauche nur die Zeile für die jüngsten verfügbaren –

Verwandte Themen