Ankündigung

Einklappen
Keine Ankündigung bisher.

Teilmenge eines String groupieren und aus geben.

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Commu
    hat ein Thema erstellt Teilmenge eines String groupieren und aus geben..

    Teilmenge eines String groupieren und aus geben.

    Hallo Zusammen,

    ich stehe vor einer blöden Aufgabe.

    ich habe eine LotusNotes "DB" in einer MySQL DB abgebildet.

    Dadurch sind verschiedene Schwierigkeiten auf getaucht.

    In Einer Spalte ist folgendes

    Nr
    --------------
    RfC-10-AMS-0123
    RfC-10-DCS-0021
    RfC-10-PMO-0554
    RfC-10-CN-0001
    RfC-10-CN-0002
    RfC-10-AMS-0124

    Zu meiner Frage:

    ist es möglich den im Beispiel rot markierten String per SQL auszugeben und
    zu groupieren?

    Gruß Jörg

  • Gast-Avatar
    Ein Gast antwortete
    Zitat von Commu Beitrag anzeigen
    wenn ich das ganze mit einer WHERE-Klausel auf LIKE 'RfC-10-' begrenze dann funktioniert das prima.
    Stimmt, habe ich vergessen. Es war ja meine Frage, ob die Spalte immer "RfC-10-" enthält.
    Viel Erfolg damit.

    Grüße
    Thomas

    Einen Kommentar schreiben:


  • Commu
    antwortet
    Vielen Dank

    wenn ich das ganze mit einer WHERE-Klausel auf LIKE 'RfC-10-' begrenze dann funktioniert das prima.

    Gruß und Danke
    Jörg

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Mal ein Lösungsansatz dazu:

    Code:
    CREATE TABLE lotusnotes (
     field VARCHAR(50) NOT NULL
    );
    
    INSERT INTO lotusnotes VALUES
    ('RfC-10-AMS-0123'),
    ('RfC-10-DCS-0021'),
    ('RfC-10-PMO-0554'),
    ('RfC-10-CN-0001'),
    ('RfC-10-CN-0002'),
    ('RfC-10-AMS-0124');
    
    SELECT r3.field3, COUNT(*)
      FROM (SELECT r2.field, r2.field1, r2.field2, SUBSTR(r2.field1, 1, r2.field2 -1) AS field3
              FROM ( SELECT r1.field, r1.field1, INSTR(r1.field1,'-') AS field2
                    FROM ( SELECT field, REPLACE(field,'RfC-10-','') AS field1
                             FROM lotusnotes
                         ) r1
                  ) r2
           ) r3
    GROUP BY r3.field3
    ORDER BY r3.field3;
    
    +--------+----------+
    | field3 | COUNT(*) |
    +--------+----------+
    | AMS    |        2 |
    | CN     |        2 |
    | DCS    |        1 |
    | PMO    |        1 |
    +--------+----------+
    4 rows in set (0.05 sec)
    
    mysql>
    Die Lösung ist natürlich sehr spezifisch und geht davon aus, da in jedem Feld 'RfC-10-' ersetzt werden kann und die Struktur immer identisch ist.

    Grüße
    Thomas

    Einen Kommentar schreiben:


  • Hexe
    antwortet
    Wenn der String immer gleich aufgebaut ist, sollte es mit SUBSTRING_INDEX und SUBSTRING gehen.

    http://dev.mysql.com/doc/refman/5.1/de/string-functions.html

    Einen Kommentar schreiben:

Lädt...
X