Mehrere Tabellen in Funktion kombinieren!

20/06/2008 - 02:02 von Matthias V. | Report spam
Hallo zusammen!
Ich habe gerade ein kleines Problem und bin mir nicht sicher, ob das
überhaupt Lösbar ist.
Ich habe in einer Datenbank viele Tabellen die zum Teil recht àhnliche
Inhalte haben. Zum Beispiel gibt es diverse Tabellen, die ein Datum
enthalten. Mal sind es Termine, mal Auftràge, mal Geburtstage in der
Kundenliste. Diese Tabellen haben untereinander natürlich keinerlei
Beziehung, sind also vollstàndig eigenstàndig.
Nun möchte ich aber gerne eine Auflistung aller Daten schnell und einfach
abrufen. Hierzu über die einzelnen Tabellen ein Select auszuführen ist
natürlich der einfachste Weg, allerdings auch der unpraktischte, wenn es um
Sortierungen etc. geht.

Also dachte ich, ich erstellen eine Funktion mit "Returns Table" und setze
alle Select-Abrufe hier rein, also so in etwa:

CREATE FUNCTION xxx.fct_Datumswerte()
RETURNS TABLE
AS
RETURN
(
Select dt_Datum as dt_Datum, vc_Titel as vc_Titel, 'TERMIN' as Typ from
tbl_Termine
Select dt_Datum as dt_Datum, 'Auftrag ' + vc_Auftrag as vc_Titel, 'AUFTRAG'
as Typ from tbl_Auftraege
Select dt_Geburtstag as dt_Datum, vc_Nachname + ', ' + vc_Vorname as
vc_Titel, 'GEBURTSTAG' as Typ from tbl_Kunden
)
GO

So geht es aber natürlich nicht. Ich bekomme einfach nicht raus, wie ich
mehrere Tabellen untereinander über eine Funktion ausgeben kann - hat jemand
eine Idee?

Vielen Dank
Matthias
 

Lesen sie die antworten

#1 Christa Kurschat
20/06/2008 - 08:09 | Warnen spam
Hallo Matthias,

"Matthias V." schrieb im Newsbeitrag
news:
Hallo zusammen!
Ich habe gerade ein kleines Problem und bin mir nicht sicher, ob das
überhaupt Lösbar ist.
Ich habe in einer Datenbank viele Tabellen die zum Teil recht àhnliche
Inhalte haben. Zum Beispiel gibt es diverse Tabellen, die ein Datum
enthalten. Mal sind es Termine, mal Auftràge, mal Geburtstage in der
Kundenliste. Diese Tabellen haben untereinander natürlich keinerlei
Beziehung, sind also vollstàndig eigenstàndig.
Nun möchte ich aber gerne eine Auflistung aller Daten schnell und einfach
abrufen. Hierzu über die einzelnen Tabellen ein Select auszuführen ist
natürlich der einfachste Weg, allerdings auch der unpraktischte, wenn es
um
Sortierungen etc. geht.

Also dachte ich, ich erstellen eine Funktion mit "Returns Table" und setze
alle Select-Abrufe hier rein, also so in etwa:

CREATE FUNCTION xxx.fct_Datumswerte()
RETURNS TABLE
AS
RETURN
(
Select dt_Datum as dt_Datum, vc_Titel as vc_Titel, 'TERMIN' as Typ from
tbl_Termine
Select dt_Datum as dt_Datum, 'Auftrag ' + vc_Auftrag as vc_Titel,
'AUFTRAG'
as Typ from tbl_Auftraege
Select dt_Geburtstag as dt_Datum, vc_Nachname + ', ' + vc_Vorname as
vc_Titel, 'GEBURTSTAG' as Typ from tbl_Kunden
)
GO

So geht es aber natürlich nicht. Ich bekomme einfach nicht raus, wie ich
mehrere Tabellen untereinander über eine Funktion ausgeben kann - hat
jemand
eine Idee?




ich bin nicht sicher, ob ich Dich richtig verstehe, aber ich denke, UNION
wàre das, was Du suchst.
Select dt_Datum as dt_Datum, vc_Titel as vc_Titel, 'TERMIN' as Typ from
tbl_Termine
Union all
Select dt_Datum as dt_Datum, 'Auftrag ' + vc_Auftrag as vc_Titel, 'AUFTRAG'
as Typ from tbl_Auftraege
union all
Select dt_Geburtstag as dt_Datum, vc_Nachname + ', ' + vc_Vorname as
vc_Titel, 'GEBURTSTAG' as Typ from tbl_Kunden

Gruß
Christa
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
InsideSql: www.insidesql.org

Ähnliche fragen