1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Hilfe für einen Anfänger select Befehl

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von larspohle, 13 März 2018.

  1. larspohle

    larspohle Neuer Benutzer

    Hallo ich bin Datenbank Anfänger und scheitere an folgenden Problem( siehe PDF)

    Wie müsste der Select- Befehl aussehen

    Danke im Vorraus

    Lars
     

    Anhänge:

    • test.pdf
      Dateigröße:
      163,1 KB
      Aufrufe:
      7
  2. akretschmer

    akretschmer Datenbank-Guru

    ich hab kein MySQL, folgendes wird nicht 1:1 da funktionieren, sollte sich aber anpassen lassen:

    Code:
    test=*# select * from grundstuecke ;
     id |  ort  |  strasse  | nr
    ----+------------+-------------+----
      1 | Musterdorf | Musterstrae | 1
    (1 Zeile)
    
    test=*# select * from mieter;
     id | g_id | variable  | value  
    ----+------+-----------+--------
     66 |  1 | Variable1 | Value1
     77 |  1 | Variable2 | Value2
    (2 Zeilen)
    
    test=*# select g.id, g.ort, g.strasse, g.nr, string_agg(m.value,',') filter (where m.variable='Variable1') as "Variable1", string_agg(m.value,',') filter (where m.variable='Variable2') as "Variable2" from grundstuecke g left join mieter m on g.id=m.g_id group by g.id, g.ort, g.strasse, g.nr;
     id |  ort  |  strasse  | nr | Variable1 | Variable2
    ----+------------+-------------+----+-----------+-----------
      1 | Musterdorf | Musterstrae | 1  | Value1  | Value2
    (1 Zeile)
    
    Falls Dir das Anpassen zu anstrengend ist verwende halt gleich PostgreSQL. Ist eh besser ;-)
     
    Kampfgummibaerlie gefällt das.
  3. larspohle

    larspohle Neuer Benutzer

    Danke für die Antwort.

    leider finde ich keine Lösung in meiner MariaDB für folgenden aus der oben genannten Syntax.

    string_agg(m.value,',') filter (where m.variable='Variable1') as "Variable1", string_agg(m.value,',') filter (where m.variable='Variable2') as "Variable2"

    Grüsse Lars
     
  4. akretschmer

    akretschmer Datenbank-Guru

    für string_agg gibt es eine andere Aggregatsfunktion, das filter (where ...) kann man als case when ... umschreiben. Die Syntax findest Du in der Doku.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden