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
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)
);
super es klappt :)
danke dir