[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Thema: SQL TOP 500

Hybrid View

  1. #1
    Registriert seit
    Feb 2005
    Beiträge
    30
    @ DrNick

    So geb ich's unter strsql ein:

    select * from dbcoil limit 0,500

    Das kommt raus:

    Token 0,500 ungültig. Gültige Token: FOR WITH FETCH ORDER UNION OPTIMIZE

    Sehr schade

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Gib in der Eigenschaft des Command-Objects "MaxRecords" = 500 an.
    Alternativ am Ende des SQL's

    FETCH FIRST 500 ROWS ONLY
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Feb 2005
    Beiträge
    30
    Jihaaaa !

    Spitze, funktioniert beides super.

    Sehr großes Danke von mir und den zukünftigen Programmbenutzern, die jetzt nicht mehr 8 Minuten auf Ihre Ergebnise warten müssen

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Liegen die 8 Minuten an der Anzahl Datensätze oder eher an fehlenden Zugriffspfaden ?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Feb 2005
    Beiträge
    30
    6,5 Millionen Datensätze

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Spoldo
    6,5 Millionen Datensätze
    Auch oder gerade bei einer solchen Anzahl Datensätze würde ich 8 Minuten nicht hinnehmen.

    Prüfe die verwendeted Zugriffs-Wege und lege gegebenenfalls die entsprechenden Indices an.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  7. #7
    Registriert seit
    May 2002
    Beiträge
    1.121
    Zitat Zitat von Spoldo
    6,5 Millionen Datensätze
    naja, das ist doch nicht die welt. ich kennne da dateien die haben locker das 10fache an sätzen.
    wenn du nun nur 500 sätze auswählst, sind es dann auch die die deine user benötigen ??


    ronald

  8. #8
    Registriert seit
    Feb 2005
    Beiträge
    30
    Nö, ich krieg schon die richtigen Datensätze. Das klappt jetzt alles wunderbar. Vielen dank für Eure schnelle Hilfe.

  9. #9
    Registriert seit
    Mar 2006
    Beiträge
    4

    limit 0,30

    fetch first 30 rows only ist aber kein vollwertiger Ersatz für limit 0,30
    denn ich kann keinen Aufsetzpunkt definieren. Unter Mysql liefert mir Limit 60,30 z.B. 30 Datensätze beginnend mit dem 60. Datensatz. Gibts da eine Entsprechung auf der AS unter 5.2?

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Nein, da gibts keinen Ersatz. "Limit" ist eben ein SQL-Dialekt und eigentlich eher unsinnig. Ich würde lieber den SQL entsprechend kodieren, denn warum soll ich mehr lesen lassen als ich benötige ?
    Für "TOP x" sehe ich ja noch eine Anwendung.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo,

    ab Release V5R4M0 kann man so etwas über OLAP Ranking-Funktionen bewerkstelligen.

    Vor Release V5R4M0 muss man sich halt ein entsprechendes SQL-Statement zusammenpfiemeln. Es funktioniert, aber die Performance wird bescheiden sein.

    Wie Fuerchau sagt, macht das eigentlich wenig Sinn. Es gibt jedoch Situationen in denen z.B. die Plätze 7-25 ermittelt werden müssen.

    Beispiel:
    PHP-Code:
    with x as (select from HsCommon05/adresse                         
                  order by KundeNr
    )                                     
    select from x as z                                                
       where 11 
    < (select count(*) from x where x.KundeNr z.KundeNr)  
         and 
    20 > (select count(*) from x where x.KundeNr z.KundeNr)  
    order by KundeNr 
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  12. #12
    Registriert seit
    Mar 2006
    Beiträge
    4
    Der Sinn ist folgender:

    Unter PHP wird über ODBC auf die DB2 zugegriffen und eine HTML-Liste erzeugt.
    Da es wenig sinnvoll ist, z.b. 200 Datensätze / Tabellenzeilen zu übertragen (es wird teilweise noch über Modem auf den Webserver zugegriffen) werden die ersten 25 Sätze angezeigt und unten eine Navigation (nächste 25). Mit "Limit x,y" ist so eine Navigation halt kinderleicht zu erstellen.

    Bisher hab ich mir die Daten nachts automatisiert auf eine MYSQL-Datenbank gezogen und von dort verwurstelt. Hat auch gut und zuverlässig funktioniert. Nun brauche ich die Daten aber in Echtzeit. Und jetzt quäle ich mich halt mit Zählern und Schleifen.

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL und OBJLCK
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 19-09-06, 11:04
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •