2 Tabellen aneinanderreihen
-
Hi,
ich habe gerade keinen Ansatz wie ich mein Problem lösen könnte.
Folgendes, ich habe 2 Tabellen:Tabelle 1: | spalte1 | 2012-04 | 2012-05 | spalte4 | +---------+---------+---------+---------+ Tabelle 2: | spalte1 | 2012-04 | 2012-05 | 2012-06 | spalte4 | +---------+---------+---------+---------+---------+
Nun möchte ich diese 2 Tabellen aneinanderreihen, und zwar so das auch alle Spaltennamen drin sind. Also kein JOIN, denke ich.
Wäre super wenn mir da einer einen Tipp geben könnte.
Gruß Gustl
-
In der Hoffung dein "aneinanderreihen" richtig gedeutet zu haben:
SELECT spalte1, 2012-04, 2012-05, '', spalte4 FROM tabelle1 UNION SELECT spalte1, 2012-04, 2012-05, 2012-06, spalte4 FROM tabelle2
Funktioniert natürlich nur, wenn die jeweiligen Spalten von t1 und t2 die gleichen Datentypen haben, sonst muss beim Select konvertiert werden.
mfg
xXx
-
Hallo, danke für den ANreiz, habe den gewünschten Inhalt bekommen. Aber leider werden mir die Spaltennamen, die in der tabelle 1 nicht vorhanden sind auch nicht angezeigt...
Folgende Abfrage:
SELECT t1.spalte1, t1.[2012-04], '', '', '', '', '', t1.spalte2 FROM tabelle1 as t1 UNION SELECT t2.spalte2, '', t2.[2012-07], t2.[2013-08], t2.[2014-08], t2.[2015-08], t2.[2016-08], t2.spalte2 FROM tabelle2 AS t2
2012-04 bekomme ich noch als spaltennamen, aber die anderen Jahres/Monatsangaben sind leider nicht vorhanden.
Das Statement schicke ich bei einer Abfrage über MS SQL SERVER MANAGEMENT STUDIO EXPRESS auf einer SQL DB ab.
Gruß
Gustl
-
Du kannst die Spalten mit "as" genauso benennen wie die Tabellen:
SELECT t1.spalte1 AS spalte1, t1.[2012-04] AS [2012-04], '' AS [2012-07] usw.
Evtl. ist die Syntax nicht korrekt, das es "AS `2012-04`" oder ähnliches heißen muss. Mit MS-SQL kenn ich mich nicht so gut aus, ich verwende grundsätzlich "gültige" Spaltennamen
mfg
xXx
-
Ja, habs auch schon bemerkt. Manchmal sieht man eben den Wald vor lauter Bäume nicht mehr.
Dankeschön!