Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: NinaG am Oktober 13, 2015, 10:47:26

Titel: 2. Abfrage funktioniert nur wenn in der 1.Abfrage mindestens ein Ergebnis ist
Beitrag von: NinaG am Oktober 13, 2015, 10:47:26
Hallo zusammen,

meine 2.Abfrage funktioniert leider nicht immer, hier erstmal die beiden Abfragen:
1.Abfrage(Bezahlte Artikel):
SELECT public_RechnungUndArtikel.Position
FROM public_RechnungUndArtikel
WHERE (((public_RechnungUndArtikel.Bestellnummer)=[Forms]![Rechnung buchen]![Bestellnummer]));

2.Abfrage:
SELECT public_Artikel.Position, Left(public_Artikel.Artikelbezeichnung,255) AS Artikelbezeichnung, public_Artikel.Menge, CCur(public_Artikel.[Preis pro Stück]) AS [Preis pro Stück], public_Artikel.Projektnummer, public_Artikel.Sachkontonummer
FROM public_Artikel, [Bezahlte Artikel]
WHERE (((public_Artikel.Position) Not In ([Bezahlte Artikel].[Position])) AND (public_Artikel.Bestellnummer = Forms![Rechnung buchen]!Bestellnummer));

Ich brauch alle Artikel einer Bestellung, die noch nicht bezahlt sind, also alle die nicht in der Tabelle public_RechnungUndArtikel sind.
Wenn ich bereits irgendwelche bezahlten Artikel für die Bestellung habe funktioniert die Abfrage, aber wenn noch kein Artikel bezahlt wurde, habe ich in Abfrage 2 keine Ergebnisse.

Weiß jemand wie man das ändern kann oder kann ich evtl. beide Abfragen in einer zusammenfassen(habe dies nicht hinbekommen, weil der Primärschlüssel aus Bestellnummer und Position besteht) ?

Liebe Grüße
Nina
Titel: Re: 2. Abfrage funktioniert nur wenn in der 1.Abfrage mindestens ein Ergebnis ist
Beitrag von: MaggieMay am Oktober 13, 2015, 12:49:29
Hallo,
ZitatIch brauch alle Artikel einer Bestellung, die noch nicht bezahlt sind, also alle die nicht in der Tabelle public_RechnungUndArtikel sind.
das löst du am besten mit einem "Outer Join":
SELECT A.Position, Left(A.Artikelbezeichnung,255) AS Artikelbezeichnung, A.Menge, CCur(A.[Preis pro Stück]) AS [Preis pro Stück], A.Projektnummer, A.Sachkontonummer
FROM public_Artikel As A LEFT JOIN public_RechnungUndArtikel AS R
ON A.Bestellnummer = B.Bestellnummer And A.Position = R.Position
WHERE (
((R.Position) Is Null) AND
((A.Bestellnummer) = Forms![Rechnung buchen]!Bestellnummer)
);


Titel: Re: 2. Abfrage funktioniert nur wenn in der 1.Abfrage mindestens ein Ergebnis ist
Beitrag von: NinaG am Oktober 13, 2015, 13:39:09
super es klappt :)

danke dir