[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jun 2009
    Beiträge
    7

    erledigt

    Der Hinweis von mk mit dem Trim in der Funktion war die Lösung:

    ... WHERE FIR = trim(PARFir)
    and KDNR = trim(ParKdnr)
    ...

    Danke an euch alle

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Dass der Trim von Erfolg gekrönt wird spricht gegen eine korrekte Parameterübergabe. Wenn diese ohne führende Leerzeichen erfolgt dann muss es auch ohne klappen da Leerzeichen am Ende nicht relevant sind.

    Aber ein scalarer Subselect wäre trotzdem einfacher.
    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
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Aber ein scalarer Subselect wäre trotzdem einfacher.
    Das musst Du mal erklären, wie Du mit einem skalaren Subselect die Warengruppen über mehrere (unbestimmt viele) Zeilen als String verknüpfen und dann ausgeben willst!

    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

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Ja OK, das habe ich dann doch überlesen.
    Aber gabs da nicht was mit recursiver CTE in einem anderen Beitrag?
    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
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Ja OK, das habe ich dann doch überlesen.
    Aber gabs da nicht was mit recursiver CTE in einem anderen Beitrag?
    Mit Recursiven CTEs geht so was und müsste etwa so aussehen:
    Code:
    with x   as (SELECT ROW_NUMBER() over(partition by FirNr, KndNr ORDER BY rrn(a)) Seq, 
                        a.*
                    FROM Table1 a),
         Rec (FirNr, KndNr, Wagr, Seq) 
             as (      select FirNr, KndNr, x.Wagr, Seq from x where Seq = 1
                 union all
                       select x.FirNr, x.KndNr concat ' ' concat Rec.WaGr,
                              Rec.Seq + 1
                          from x join Rec on     x.FirNr = Rec.FirNr 
                                             and x.KndNr = Rec.KndNr 
                                             and x.Seq   = Rec.seq + 1),
        y    as (select FirNr, KndNr, Max(Seq) Seq 
                    From Rec 
                    Group By FirNr, KndNr)
    select rec.FirNr, rec.KndNr, WaGr 
    from Rec join y Using (FirNr, KndNr, Seq )
    Ob das allerdings einfacher als die kleine UDF ist wage ich zu bezweifeln.

    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

Similar Threads

  1. SQL: NULL als Ergebnis bei vielen Nachkommastellen
    By Booley in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 30-03-12, 12:37
  2. SQL: Ausführungsverhalten einer Funktion in einem CASE-Statement
    By mwithake in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 04-08-09, 14:57
  3. Wirres SQL Ergebnis
    By lyrics in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-08-06, 12:10
  4. sql funktion
    By steven_r in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 01-06-06, 12:16
  5. Erstellen Trigger über SQL / Read Funktion
    By GHoffmann in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 07-07-05, 09:18

Tags for this Thread

Berechtigungen

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