[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Apr 2004
    Beiträge
    105
    Meinst du vielleicht:

    1. Sortierung
    PHP-Code:
    Select FeldAFeldBFeldC, ...
    From TabelleA
    Where 
    ...
    Order by 1 asc2 desc 
    2. Sortierung
    PHP-Code:
    Select FeldAFeldBFeldC, ...
    From TabelleA
    Where 
    ...
    Order by 1 desc2 desc 
    1. Du erstellst das SQL-Select-Statement als String.
    MySQLStm = 'SELECT ..... '
    2. Du generierst ein ausführbares SQL-Statement über den SQL Prepare-Befehl:
    /EXEC SQL Prepare MySQLCmd from :MySQLStm
    /END-EXEC
    3. Du deklarierst einen Cursor, in dem Du statt des SQL-Statements den aufbereiteten SQL-Command angibst:
    /EXEC SQL Declare MyCursor For MySQLCMD
    /END-EXEC

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Das Problem hier ist eher die 2-stufige Sortierung.

    Hierfür musst du ein temporäres Zwischenergebnis erstellen, dass du dann für die Sortierung wieder verknüpfst:

    with
    xGroupSum as (
    select kunde, sum(Umsatz) as GUmsatz
    from MyFile
    group by Kunde)

    select a.Kunde, Artikel, min(GUmsatz) as GUmsatz, sum(Umsatz) as AUmsatz A
    from myfile inner join xGroupSum B on a.Kunde=B.Kunde
    group by Kunde, Artikel
    order by GUmsatz, AUmsatz, Kunde

    Je nach Schachtelungstiefe benötigst du entsprechend viele Zwischenergebnisse und Verknüpfungen.

    Performance ?
    Naja, das muss man ausprobieren.
    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
    Joe is offline [professional_User]
    Registriert seit
    Mar 2001
    Beiträge
    365
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Das Problem hier ist eher die 2-stufige Sortierung.

    Hierfür musst du ein temporäres Zwischenergebnis erstellen, dass du dann für die Sortierung wieder verknüpfst:

    with
    xGroupSum as (
    select kunde, sum(Umsatz) as GUmsatz
    from MyFile
    group by Kunde)

    select a.Kunde, Artikel, min(GUmsatz) as GUmsatz, sum(Umsatz) as AUmsatz A
    from myfile inner join xGroupSum B on a.Kunde=B.Kunde
    group by Kunde, Artikel
    order by GUmsatz, AUmsatz, Kunde

    Je nach Schachtelungstiefe benötigst du entsprechend viele Zwischenergebnisse und Verknüpfungen.

    Performance ?
    Naja, das muss man ausprobieren.
    Vielen Dank für den Lösungsansatz.

    Da die Schachtelungstiefe > 30 sein kann, habe ich mich für
    eine "abgespeckte" Version entschieden bei der der Benutzer die Sortierstufe vorgibt. Nur diese wird dann verwendet und angezeigt.

    Gruß Joe

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
  •