Tabellen zusammenführen

geimist

Neuer Benutzer
Beiträge
2
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
 
Werbung:
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.
 
Also ersteinmal Danke! Ich werde mal versuchen das umzusetzen.
Laß Dir gesagt sein, daß dieses Tabellendesign in die Kategrorie "Sondermüll" zählt.
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 …).
 
Werbung:
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.
 
Zurück
Oben