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

Tabellen zusammenführen

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von geimist, 8 Oktober 2015.

  1. geimist

    geimist Neuer Benutzer

    Erst einmal hallo zusammen!

    So ist das mit den Forumsneulingen - kaum sind sie da, schon haben sie eine Frage … :)

    Mein Ziel ist es, mehrere Tabellen mit Arbeitszuteilungen (die separat geplant werden, und daher auch in eigenen Tabellen liegen) zu einer einzigen Tabelle (Abfrage) zusammenzuführen. Dabei sollen alle ursprünglichen Spalten erhalten bleiben, mit Ausnahme des Datums, welches zu einer Spalte kombiniert werden soll. Möglicherweise muss noch in der Abfrage noch eine eindeutige ID-Spalte hinzugefügt werden. Ich habe schon mit UNION und OUTER JOIN (leider erfolglos) probiert. Ich mache einfach zu selten etwas mit SQL.

    So soll es vereinfacht aussehen:

    Code:
    TabelleWinterdienst
        Datum    FußwegName    ParkplatzName
        1.1.15    Schneemann1    Schneefrau1
        2.1.15    Schneemann2    Schneefrau2
    
    TabelleKehren
        Datum    TreppeName    KellerName
        1.6.15    Kehrhard1    Kehrhard2
        2.6.15    Kehrhard3    Kehrhard4
    
    Ergebnis
        Datum    FußwegName    Parkplatzname    TreppeName    KellerName
        1.1.15    Schneemann1    Schneefrau1    null            null
        2.1.15    Schneemann2    Schneefrau2    null            null
        1.6.15    null            null            Kehrhard1    Kehrhard2
        2.6.15    null            null            Kehrhard3    Kehrhard4
    
    Die ursprünglichen Tabellen stehen also in keiner direkten Relation zueinander.

    Hintergrund des Ganzen:
    Ich möchte in OpenOffice (nutzt zwar HSQLDB) per Makro ICS-Kalenderdateien schreiben. Eine Datei je Mitarbeiter. Daher wäre es für mich das einfachste, wenn alle Spalten in einer Abfrage verfügbar wären.

    Vielen Dank im Voraus für das Gedanken machen.

    LG
    Stephan
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Code:
    test=*# select * from winter ;
      datum  |  weg  |  name
    ------------+-------------+-------------
     2015-01-01 | schnemann1  | schneefrau1
     2015-01-01 | schneemann2 | schneefrau2
    (2 rows)
    
    test=*# select * from kehren ;
      datum  | treppe  |  name
    ------------+---------+---------
     2015-06-01 | kehren1 | kehren2
     2015-06-02 | kehren3 | kehren4
    (2 rows)
    
    test=*# select datum, weg as "FusswegName", name as "ParklaptzName", null as "TreppeName", null as "KellerName" from winter union all select datum, null, null, treppe, name from kehren ;
      datum  | FusswegName | ParklaptzName | TreppeName | KellerName
    ------------+-------------+---------------+------------+------------
     2015-01-01 | schnemann1  | schneefrau1  |  |
     2015-01-01 | schneemann2 | schneefrau2  |  |
     2015-06-01 |  |  | kehren1  | kehren2
     2015-06-02 |  |  | kehren3  | kehren4
    (4 rows)
    
    
    Laß Dir gesagt sein, daß dieses Tabellendesign in die Kategrorie "Sondermüll" zählt.
     
  3. geimist

    geimist Neuer Benutzer

    Also ersteinmal Danke! Ich werde mal versuchen das umzusetzen.
    Das glaube ich dir gerne. :rolleyes:
    Aber wie das so ist: man fängt klein an, und schraubt dann über die Jahre an jeder Ecke etwas dazu. Diese Datenbank ordentlich komplett neu zuschreiben (mit den ganzen Makros ect. würde mich Monate kosten …).
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Wenn Du den Müll nun noch ein halbes Jahr weiter aufbaust dauert die Umstellung auf ein sauberes Design dann 2 Jahre und kostet das zehnfache.
     
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