[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2009
    Beiträge
    15

    group_concat aus mysql für db2?

    Hallo zusammen,

    kennt jemand von euch für diese Funktion (group_concat aus mysql) einen Äquivalent auf der AS400/db2?

    So sind Daten bei einer Tabelle gespeichert:

    ArtNr SuchBegriff

    1000 Wandfarbe
    1000 Dispersion
    2000 Lack
    2000 Kunstharz

    und das möchte ich raushaben:

    1000 Wandfarbe, Dispersion
    2000 Lack, Kunstharz

    Scheint nicht ganz so einfach zu sein.

    so long und Danke im Voraus.
    Daniel

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Für diese Funktion gibt es kein Äquivalent für die DB2.
    Da musst Du Dir schon Deine eigene Funktion basteln.
    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

  3. #3
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Ab 7.1 könnte man sich eventuell noch mit connect by ein Select zusammen basteln, aber das wäre den Aufwand nicht wert.
    Am besten eine Funktion schreiben die das macht.

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Die hierachischen Query-Anweisungen bzw. die Funktion SYS_CONNECT_BY_PATH werden allerdings anders verwendet.

    Sich eine kleine Funktion zu schreiben ist ja auch kein Hexenwerk.
    Beispiel:

    Code:
    CREATE FUNCTION MySchema/MyFkt ( 
    	ParArtNr Dec(11, 0) ) 
    	RETURNS VARCHAR(1024)   
    	LANGUAGE SQL 
    	NOT DETERMINISTIC 
    	READS SQL DATA 
    BEGIN 
       DECLARE RETURNVAL VARCHAR ( 1024 ) DEFAULT ' ' ; 
      
       FOR CSRC1 AS C1 CURSOR 
           FOR SELECT LiefNr 
               FROM Table1 
               WHERE ARTNR = ParArtNr 
       DO SET RETURNVAL = RETURNVAL CONCAT ' ' CONCAT CSRC1.LiefNr; 
       END FOR ; 
       RETURN LTRIM(RETURNVAL); 
    END  ;
    Aufruf:
    Code:
    Select Distinct ArtNr, MyFkt(ArtNr)
    From Table1;
    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

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    with recursive rpl (artnr, suchb)
    as (select a.artnr, a.suchb from myfile a
    union all
    select rpl.artnr, rpl.suchb
    concat ', ' concat b.suchb
    from rpl, myfile b
    where rpl.art=b.art and rpl.art<>b.art
    )
    select * from rpl
    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

  6. #6
    Registriert seit
    Jun 2001
    Beiträge
    2.044

    Thumbs up Wow

    Auch wenn ich das Problem in der Form nicht habe ...

    Sehr interessante Lösungen!
    wieder was gelernt,

    Danke
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Die Lösung ist nicht ganz vollständig, man muss das Ergebnis schon noch zusätzlich auswerten, ggf. die Tiefe der Abfrage (Recursion) beschränken usw.

    Funktioniert hat die Abfrage bei mir über genau 2 Ebenen, eine dritte habe ich nicht hinbekommen.

    Ich habe auch versucht, per

    select artnr, max(suchb) from rpl
    group by artnr

    das Ergebnis zu verbessern.
    Nach angezeigten ca. 15.000.000 Zugriffen bei einer Tabelle mit ca. 300 Sätzen.
    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

Similar Threads

  1. Connection auf DB2 aus mysql workbench
    By rr2001 in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 02-03-11, 14:34
  2. Zugriff auf DB2 UDB
    By Azaron in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 05-12-06, 13:42
  3. 13.12.06 - DB2 V9 - pureXML, System i5 und CenturioDB
    By mlitters in forum Archiv NEWSboard Events
    Antworten: 0
    Letzter Beitrag: 11-10-06, 16:52
  4. Access -> ODBC-> DB2
    By bluesXplosion in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 03-08-06, 09:52

Berechtigungen

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