![]() |
Datenbank: ib6 • Version: 6 • Zugriff über: sql
ibSQL. gibts den befehl LIMIT wie in mySql ??????
Hallo,
ich suche nach einer möglichkeit einen Datensatz anzuzeigen, und zwar nur einen, wo aber die suchkriterien nicht bekannt sind. situation: ich habe eine tabelle "PRODUKTE" und dann habe ich eine Tabelle "LIEFERUNGEN" nun suche ich nach der letzten lieferung von diesem produkt wie macht ihr sowas? ist sicherlich kein weltneues problem.. :-P ich habs bisher immer über delphi gelöst. aber das stinkt mir langsam zu sehr. ab 10000 einträge wird das sehr lahm... :-( wollte schon eine stored procedure schreiben, aber gerade hänge ich am problem mit "limit" kenne nichts aus SQL, was dem aus mysql entsprechen würde. :-( bitte helft! gruß m |
Re: ibSQL. gibts den befehl LIMIT wie in mySql ??????
naja.. geht auch anders...
hab ich gerade gesehen.
SQL-Code:
gruß
SELECT P.P_BEZ, P.P_PREIS,
(SELECT MAX(L.LIN_DATUM) FROM lieferungen L where L.LIN_PROD=P.P_ID) AS LAST_LIEF FROM PRODUKTE P |
Re: ibSQL. gibts den befehl LIMIT wie in mySql ??????
Prinzipiell solltest Du Dir überlegen, dass es von vornherein keinen Sinn macht, dem Benutzer 10000 Records zu liefern. Ob das in einem Stück oder über mehrere Seiten mittels limit passiert, denn kein Mensch wird die 10000 Records manuell durchlaufen um den entsprechenden Record zu finden. Überleg Dir stattdessen liebe, wie Du deine Suchfunktion verfeinern kannst, damit die Gesamtergebnismeng überschaubar bleibt, z.B. durch Eingrenzung innerhalb eines Zeitraums. Kriterien dazu findest Du meist in deiner Datenbank selbst.
|
Re: ibSQL. gibts den befehl LIMIT wie in mySql ??????
Zitat:
SQL-Code:
Ist als Beispiel für die Suche nach neuestem Preis eines Artikels für einen Kunden anzusehen. :???: Sehe allerdings gerade noch : IB6 ? Beispiel bezieht sich auf FB 1.5. IMHO gehts so mit IB 6 nicht, aber Du weißt sicherlich, daß Firebird 1.0 der Nachfolger davon ist oder doch nicht :?: Es geht jedenfalls um das FIRST und richtiges ORDER BY.
BEGIN
SELECT FIRST 1 VP,ABDATUM FROM PREIS P WHERE (ID_ART = :ID_ART) AND (ID_KUNDE = :ID_KUNDE) AND (ABDATUM <= :ABDATUM) ORDER BY ABDATUM DESC INTO :PREIS,:ABDATUM_OUT; SUSPEND; END |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz