internet2107
Goto Top

Oracle Datenbank-Tabellenabfrage, letzten 10 Einträge

Guten Morgen,

ich würde gerne die letzten 10 Einträge über eine Tabellenabfrage machen, wenn die Abfrage über insgesamt 3 Tabellen läuft.
Leider schaffe ich das nicht. Wo liegt hier der Fehler?

SELECT * FROM  (SELECT * FROM USER1.TABELLE1 A, TABELLE2 B, TABELLE3 C WHERE A.ID=B.ID2 AND A.ID3='FD0404040' order by ROWNUM DESC) where ROWNUM < 50  ;  

Danke für jede Hilfe

Content-ID: 351260

Url: https://administrator.de/contentid/351260

Ausgedruckt am: 25.11.2024 um 09:11 Uhr

Volchy
Lösung Volchy 10.10.2017 um 09:47:02 Uhr
Goto Top
Hallo internet2107,

ohne die genauen Fremdschlüssel zu kennen, kannst du es mit der folgenden Logik versuchen:

select *
from
(	
	select distinct
		a.id as identnr
		,row_number() over (order by <bspw. Datumsfeld oder ID>) as zeile
	from user1.tabelle1 a
		join tabelle2 b on a.id = b.id2
		join tabelle3 c on a.id3 = c.id and a.id3 = 'FD0404040'  
) filter
where filter.zeile <= 10

Deine Fremdschlüssel kannst du dir noch entsprechend anpassen.
Falls du dein Ergebnis noch gruppieren willst, kannst du dir zu der row_number() Funktion noch den Teil "partition by" anschauen.
em-pie
em-pie 10.10.2017 um 10:04:15 Uhr
Goto Top
Moin,

ansonsten mal hier durchlesen.
Dort sind viele Wege aufgezeigt...

Gruß
em-pie