Ich möchte 3 neueste Geräte für eine Person holen. Tabellenstruktur wird unterHolen Sie 3 letzte Details aus der Tabelle
PERSON_DEVICE
person_id seq_num device_detail device_detail_added
999 1 Nexus 03/04/2015
999 2 iphone 06/07/2015
999 3 laptop 08/09/2015
999 4 uda 02/01/2016
999 5 pda 04/04/2016
1001 1 sm 03/03/2015
... and so on
gezeigt
Für neuestes Gerät für eine Person, die ich verwenden kann folgende Abfrage
select * from PERSON_DEVICE
where person_id = 999
and seq_num = (select max(seq_num) from PERSON_DEVICE where person_id = 999)
aber für die zweiten neueste und dritten neuesten, ich weiß nicht, wie diese zu bekommen?
Ich versuchte mit limit
, aber in Sybase funktioniert es nicht (für meine Sybase-Version).
P.S. seq_num wird verwendet, um das neueste Gerät für eine bestimmte Personen-ID zu identifizieren.
******************** BEARBEITEN ************************* **************** 88
PERSON
person_id name addres
999 john 2 avenue
1001 elliot rrt
I want to records to
select pn.name , pd.device1 ,pd.device_detail_added1, pd.device2 ,pd.device_detail_added2,pd.device3 ,pd.device_detail_added3 from PERSON pn , PERSON_DEVICE pd
Dies ist markiert Oracle und Sybase - für welche ist die Frage? Wenn es sich um Sybase handelt, dann bewegen Sie die Maus über das Sybase-Tag, lesen Sie den Text und bearbeiten Sie die Frage, um das richtige Tag für die von Ihnen verwendete Version auszuwählen. – MT0
Wenn dies Sybase ist, dann Duplikat von [Gibt es eine Möglichkeit, TOP X Datensätze mit gruppierten Daten zu finden?] (Http://stackoverflow.com/q/2953724/1509264) und wenn dies Oracle ist, dann [Get Top Ergebnisse für jeden Gruppe] (http://StackOverflow.com/q/134958/1509264) (siehe die am höchsten gewählte Antwort nicht die akzeptierte Antwort). – MT0