Union-Abfrage in Access 2000

Hallo,

ich habe eine Möglichkeit gefunden, wie man über eine Unionabfrage mehrer Tabellen mit gleichartigen Feldern zusammenfügen kann. Das Ergebnis hat dann auch super die Ergebnisse aus den ganzen Tabellen zusammengefügt. Allerdings haben die Felder in den verschiedenen Tabellen immer den gleichen Feldnamen.
Funktioniert das auch, wenn das Feld in jeder der Tabellen einen anderen Namen hat?
Beispiel: Das Datumsfeld in Tabelle 1 heißt Datum_1, in Tabelle 2 Datum_2 und in Tabelle 3 Datum_3. Nun soll in der Union-Abfrage nachher ein Feld Datum existieren, in dem die Dati der verschiedenen Tabellen zusammengefasst werden.

Gruß

Thomas

Hi Thomas,

Funktioniert das auch, wenn das Feld in jeder der Tabellen
einen anderen Namen hat?

ja, es kommt nur darauf an, dass sie vom gleichen Typ sind.

Gruß Ralf

Hi Ralf,

ja, es kommt nur darauf an, dass sie vom gleichen Typ sind.

das ist der Fall, nur wie funktioniert das dann mit der Abfrage? Wie muß die dann lauten?

Gruß

Thomas

Hi Thomas,

das lässt sich konstruieren:

select datum_1 as „datum“ from tabelle_1
union
select datum_2 as „datum“ from tabelle_2
union
select datum_3 as „datum“ from tabelle_3

Wenn Du nichts machst, bekommt das Feld in der Abfrage den gleichen Namen wie das im ersten Select. Bei

select datum_3 from tabelle_3
union
select datum_2 from tabelle_2
union
select datum_1 from tabelle_1

hieße das Feld datum_3.

Gruß Ralf

1 Like

Hallo Ralf,

kann ich dann in der zusammengebauten Abfrage auch noch ein konstuiertes Feld hinzufügen, das mir sagt, wie oft das gleiche Datum dann im Endeffekt jeweils vorkommt?

Gruß

Thomas

Hi Thomas,

kann ich dann in der zusammengebauten Abfrage auch noch ein
konstuiertes Feld hinzufügen, das mir sagt, wie oft das
gleiche Datum dann im Endeffekt jeweils vorkommt?

mir ist rätselhaft, was das aussagen sollte resp. wem diese Info nutzen könnte. Was soll denn da stehen, eine „3“, weil die Query aus 3 Tabellen zusammengesetzt wird?

Gruß Ralf

Hallo Ralf,

mir ist rätselhaft, was das aussagen sollte resp. wem diese
Info nutzen könnte.

Das bräuchte ich für die nachfolgende Selektion.

Was soll denn da stehen, eine „3“, weil

die Query aus 3 Tabellen zusammengesetzt wird?

Nein, hier sollte nicht stehen, aus wievielen Tabellen das ganze zusammengesetzt ist, sondern, wie oft in der Ergebnisabfrage jeweis das gleiche Datum vorkommt.

Beispiel: In Tabelle 1 kommt das Datum 25.01.2006 5 mal vor, in Tabelle 2 3 mal und in Tabelle 3 10 mal. Das würde heißen, daß in der Abfrage nach dem Zusammenführen der Datensätze dieses Datum 18 mal vorkommt. Und diese Anzahl bräuchte ich für die nachfolgende Abfrage.

Gruß

Thomas

Hi Thomas,

wie oft in der Ergebnisabfrage jeweis das gleiche Datum vorkommt.

suche mal nach Count, Having und Group by.

Gruß Ralf

Hi Ralf,

suche mal nach Count, Having und Group by.

vielleicht bin ich zu doof, oder das geht bei einer Union-Abfrage nicht. Ich hab so schon nicht viel über die drei Begriffe gefunden. Aber in Verwendung mit einer Union-Abfrage mag das Ding gleich gar nicht. Vielleicht hast Du ja noch eine Idee.

Gruß

Thomas

Moin, Thomas,

Du hast Post: 3 Tabellen, 1 Abfrage (Union all), 1 count/having/group by auf den Union.

Gruß Ralf

Hallo Ralf,

Du hast Post: 3 Tabellen, 1 Abfrage (Union all), 1
count/having/group by auf den Union.

Zuerst einmal Danke für die Mail. Bei Deiner Datenbank ist mir aufgefallen, Daß Du das auch in zwei hintereinader geschachtelte Abfragen verpackt hast.
Was passiert eigentlich, wenn es da in den Abfragen und Tabellen noch ein zweites Feld gibt. Das heißt, z.B. zu jedem Datum auch noch eine Kundennummer. Nun sollte aber mit dem Gruppieren immer noch die Gesamtanzahl für ein Datum übrigbleiben, zugleich sollte aber keine Kundennummer verlorengehen.
Ich hoffe, ich habe mich da jetzt nicht zu umständlich ausgedrückt.

Gruß

Thomas

Hi Thomas,

Nun sollte aber mit dem
Gruppieren immer noch die Gesamtanzahl für ein Datum
übrigbleiben, zugleich sollte aber keine Kundennummer
verlorengehen.

mach Dir erstmal ein Bild, was die Gruppe aussagen soll - so wie ich das verstehe, wäre wohl nur sinnvoll, die gleichen Datumswerte innerhalb einer Kundennr zu zählen.

Gruß Ralf

Hallo Ralf,

eigentlich habe ich Dir das verkehrt rum gesagt. Ich müßte natürlich nach der Kundennummer gruppieren und zählen, wie oft eine Kundennummer insgesamt workommt. Erst in zweiter Instanz kann ich das ganze noch nach Datum gruppieren.

Hintergrund:
Ich muß aus einer Datenbank bestimmte Kunden herausfinden. Dabei habe ich als Kriterium, daß ich nur Kunden will, bei denen eine bestimmte Mindestanzahl an Aufträgen vorhanden ist. Dann in zweiter Insatnz möchte ich dann herausfinden, an welchem Datum der Kunde jeweils Aufträge hatte um daraus z.B. erkennen zu können, ob sich in der Auftragsfrequenz etwas ändert, oder aber, ob ein Kunde längere Zeit ausgeblieben ist.

Gruß

Thomas Kaehler

Hi Thomas,

mein Rezept bei solch kniffligen Aufgaben: Mit Bleistift und Papier eine Auswertung entwerfen, dann zeigt sich ganz schnell, ob das überhaupt mit einer einzigen Abfrage geht. Meine Vermutung: Es geht irgendwie, sagt dann aber nichts mehr aus. Anzahl der Bestellungen eines Kunden mit gleichem Datum - hilft Dir das weiter?

Gruß Ralf