Abfrage mit Null Werten mit anderer Abfrage zusammenführen

05/03/2008 - 21:56 von jhofmeier | Report spam
Hallo NG,
ich habe eine etwas umstàndlich zu beschreibendes Problem.
Ich habe 2 Abfragen die so aussehen:

Abfrage1:

ID BetragJahr1

Abfrage 2:

ID BetragJahr2

Jetzt soll daraus folgendes Werden:

ID BetragJahr1 BetragJahr2

Dazu hab ich eine "Gesamtabfrage" erstelllt, die Abfr.1 und Abfr.2
über die ID verknüpft. Problem ist jetzt aber, daß es IDs gibt, die
nur in Abfrage2 oder nur in Abfr.1 vorkommen. Wenn dies der Fall ist,
fehlen diese bei meiner Gesamtabfrage aber leider komplett. Ich hàtte
in diesem Fall dann aber bei dem Betrag gerne eine 0 stehen.
Soll heißen wenn ID 55 nur in Abfr. 1 vorkommt soll meine
Gesamtabfrage ausspucken:

ID BetragJahr1 BetragJahr2
55 123 0

Kann mir hier jmd weiterhelfen?


Gruss,

Jens
 

Lesen sie die antworten

#1 Michael Zimmermann
06/03/2008 - 00:56 | Warnen spam
Hallo!

jhofmeier:
ich habe eine etwas umstàndlich zu beschreibendes Problem.
Ich habe 2 Abfragen die so aussehen:

Abfrage1:

ID BetragJahr1

Abfrage 2:

ID BetragJahr2

Jetzt soll daraus folgendes Werden:

ID BetragJahr1 BetragJahr2

Dazu hab ich eine "Gesamtabfrage" erstelllt, die Abfr.1
und Abfr.2 über die ID verknüpft. Problem ist jetzt aber,
daß es IDs gibt, die nur in Abfrage2 oder nur in Abfr.1
vorkommen. Wenn dies der Fall ist, fehlen diese bei
meiner Gesamtabfrage aber leider komplett. Ich hàtte in
diesem Fall dann aber bei dem Betrag gerne eine 0 stehen.
Soll heißen wenn ID 55 nur in Abfr. 1 vorkommt soll meine
Gesamtabfrage ausspucken:

ID BetragJahr1 BetragJahr2
55 123 0

Kann mir hier jmd weiterhelfen?



Du scheinst einen Full Outer Join zu suchen. Den kannst Du
in Access wie folgt erzeugen:

Das klingt so, als würdest Du einen Full Outer Join suchen.
Den kannst Du schematisch wie folgt konstruieren:

SELECT
Tab1.ID, Tab1.BetragJahr1, Tab2.BetragJahr2
FROM
Tab1 LEFT JOIN Tab2 ON Tab1.id = Tab2.id
UNION SELECT
Tab2.ID, Tab1.BetragJahr1, Tab2.BetragJahr2
FROM
Tab1 RIGHT JOIN Tab2 ON Tab1.id = Tab2.id

(Luftcode)

Die NULL-Werte durch Nullen (0) zu ersetzen, geht mit der
Nz-Funktion (siehe OH).

Ob das sinnvoll ist, steht auf einem anderen Blatt.
Wenn Du einen Wert nicht kennst (NULL) könnte er -1000
oder +1000 oder sonst etwas sein. NULL heißt, daß Du es
nicht weißt. Daß gerade die Zahl 0 eine sinnvolle Annahme
sein soll, ist reine Spekulation.

Davon ab: Abfrage 1 und 2 gehen vermutlich auf dieselbe
Tabelle? (Wenn nein, wieso nicht?) Warum kannst Du nicht
eine Abfrage 3 auf die (vermutete) Betragstabelle erstellen,
die direkt das gewünschte Ergebnis liefert, ohne noch
zwei Abfragen dazwischen?

Gruß aus Mainz
Michael

Ähnliche fragen