AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Nur die ersten n Ergebnisse anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Nur die ersten n Ergebnisse anzeigen

Ein Thema von Wegalt · begonnen am 17. Feb 2004 · letzter Beitrag vom 19. Feb 2004
Antwort Antwort
Wegalt

Registriert seit: 14. Nov 2003
12 Beiträge
 
#1

Nur die ersten n Ergebnisse anzeigen

  Alt 17. Feb 2004, 16:03
Hallo,

ich hoffe ihr könnt mir helfen.
Ich möchte nur die Ersten n Ergebnisse anzeigen lassen bzw sollen nur n
Ergebnisse bei einer Abfrage rauskommen

SQL-Code:
Select Kunde, Datum
from Kunden
order by Datum
Wie kriege ich es nun hin, dass ich nur n und nicht alle Kunden geordnet
nach dem Datum als Ergebnis zurückbekomme?

P.S. Ich nutze Oracle

Danke
Wegalt
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: Nur die ersten n Ergebnisse anzeigen

  Alt 17. Feb 2004, 16:13
ADOQuery:
Delphi-Quellcode:
With Query Do
Begin
  SQL.Text :=
    'SELECT Kunde,' + #10 +
    ' Datum' + #10 +
    'FROM Kunden' + #10 +
    'WHERE RowNum <= :i_LimitRows' + #10 +
    'ORDER By Datum';
  Prepared := True;
  Parameters.ParamByName('i_LimitRows').Value := n;
  Open;
  While Not Eof Do
  Begin
    ...
    Next;
  End;
  ...
End;
Direct Oracle Access:
Delphi-Quellcode:
With Query Do
Begin
  SQL.Text :=
    'SELECT Kunde,' + #10 +
    ' Datum' + #10 +
    'FROM Kunden' + #10 +
    'WHERE RowNum <= :i_LimitRows' + #10 +
    'ORDER By Datum';
  DeclareVariable('i_LimitRows', otInteger);
  SetVariable('i_LimitRows', n);
  Execute;
  While Not Eof Do
  Begin
    ...
    Next;
  End;
  ...
End;
  Mit Zitat antworten Zitat
Wegalt

Registriert seit: 14. Nov 2003
12 Beiträge
 
#3

Re: Nur die ersten n Ergebnisse anzeigen

  Alt 17. Feb 2004, 16:42
Darauf bin ich zuerst auch gekommen aber das funktioniert nicht.
Mit "Rownum" geht es nicht, da mir dann nur die Zeilen ausgewählt werden,
wo die Zeilennummer <= meines Wertes ist.

Rownum begrenzt nicht mein Ergebnis sondern die auszuwählenden Zeilen!!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Nur die ersten n Ergebnisse anzeigen

  Alt 17. Feb 2004, 16:49


Man muss es natürlich erst in einem Subselect sortieren und danach die Menge einschränken. die Where-Clause läuft ja auch vor Select & Order By...
Delphi-Quellcode:
  SQL.Text :=
    'SELECT v.Kunde,' + #10 +
    ' v.Datum' + #10 +
    'FROM (SELECT Kunde,' + #10 +
    ' t.Datum' + #10 +
    ' FROM Kunden t' + #10 +
    ' ORDER By t.Datum Desc) v' + #10 +
    'WHERE RowNum <= :i_LimitRows';
Edit: Hab' "<= 5" durch "<= :i_LimitRows" ersetzt
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#5

Re: Nur die ersten n Ergebnisse anzeigen

  Alt 17. Feb 2004, 17:17
Unterstützt Oracle kein Top?
SQL-Code:
SELECT TOP 10 *
  FROM Tabelle
 WHERE Bedingung
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: Nur die ersten n Ergebnisse anzeigen

  Alt 17. Feb 2004, 17:32
Ist wohl so ein SQL-Server spezifisches Ding.
Dafür haben wir Pseudo-columns wie RowNum, RowID, Level,...
p.s.: Ich wette der Optimizer würde deinen Code fast genauso umsetzen wie meinen, du sparst dir wahrscheinlich nur etwas Tipperei.
  Mit Zitat antworten Zitat
Wegalt

Registriert seit: 14. Nov 2003
12 Beiträge
 
#7

Re: Nur die ersten n Ergebnisse anzeigen

  Alt 17. Feb 2004, 18:21
Danke euch, leider geht geht TOP nicht aber dafür die verschachtelte Anweisung
  Mit Zitat antworten Zitat
Seven

Registriert seit: 4. Dez 2003
44 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Nur die ersten n Ergebnisse anzeigen

  Alt 19. Feb 2004, 11:53
Wegalt Frage würde mich auch interessieren. Leider setze ich Informix7.2 ein, dort finde ich aber leider keine Funktion, um nur x Zeilen aus meiner Suche anzuzeigen. Weiss jemand von Euch Rat?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz