UNION von Abfragen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Geotrans
**
Beiträge: 42
Registriert: Fr, 01.02.2013 20:40

UNION von Abfragen

Beitrag von Geotrans »

In dem Base Handbuch http://wiki.documentfoundation.org/imag ... te_V35.pdf auf Seite 157 ist der Befehl "UNION" anhand von Tabellen beschrieben. Geht das auch mit Abfragen? Habe es ausprobiert mit einer funktionierenden Abfrage, in der ich einfach die Namen der Tabellen durch die Namen von Abfragen ersetzt habe, deren Inhalt eine einfache Abfrage der jeweiligen Tabelle ist. Hat aber nicht funktioniert!
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: UNION von Abfragen

Beitrag von F3K Total »

Hi,
verwende Ansichten statt Abfragen und direkten SQL-Mode.
Gruß R
Geotrans
**
Beiträge: 42
Registriert: Fr, 01.02.2013 20:40

Re: UNION von Abfragen

Beitrag von Geotrans »

:D Vielen Dank für die Hilfe!!! klappt prima!!!
RobertG
********
Beiträge: 2068
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: UNION von Abfragen

Beitrag von RobertG »

Hallo Geotrans,

in dem Handbuch steht:
Diese Verknüpfung von mehreren Abfragen funktioniert nur über die direkte Ausführung des SQL-Kommandos.
Direkte SQL-Kommandos haben keinen Zugriff auf Abfragen, die nur in der grafischen Benutzeroberfläche, nicht aber in der darunterliegenden Datenbank selbst gespeichert sind. Ansichten hingegen sind in der Datenbank selbst gespeichert.

Dennoch funktioniert die folgende Variante mit direktem SQL:

Code: Alles auswählen

SELECT * FROM (SELECT "Name", "Klasse" FROM "Tabelle1" WHERE "Klasse" = 3) AS "Klasse3" UNION SELECT * FROM  (SELECT "Name", "Klasse" FROM "Tabelle1" WHERE "Klasse" = 5) AS "Klasse5"
Vom Prinzip her zwei Abfragen mit gleicher Feldstruktur, die aber direkt in die eine Abfrage eingebunden sind. So kann die Datenbank die gesamte Abfrage erfassen, von der ihr sonst Inhalte verborgen geblieben sind. Die UNION-Verbindung kannst Du also umsetzen, indem Du die bisherigen Abfragen direkt in einer neuen Abfrage mit dem kompletten SQL-Kommando hinterlegst.

Gruß

Robert
Antworten