Ich habe eine benutzerdefinierte Tabelle mit einem ID
Feld (Autonummer) und einem item
Feld. Ich habe eine andere Tabelle, die von meiner Firma mit vielen Feldern zur Verfügung gestellt wird, aber es hat auch ein item
, whse
, und qty_on_hand
Feld.MS Access 2013: Warum gibt meine RIGHT JOIN-Abfrage keine NULL zurück, wenn keine Übereinstimmung vorhanden ist?
Ich möchte nur die Elemente finden, die in der benutzerdefinierten Tabelle aufgeführt sind, also verwende ich eine RECHTE VERBINDUNG. Aber, muss ich auch auf einige Kriterien filtern. Ich brauche das 'whse = A' und 'qty_on_hand> 0', aber wenn ich das tue, schließt es Elemente aus, bei denen es keine Übereinstimmung gibt, anstatt nur eine NULL
zurückzugeben. Wie kann ich es so einrichten, dass alle Zeilen in der benutzerdefinierten Tabelle zurückgegeben werden und wenn keine Übereinstimmung vorliegt, geben Sie einfach NULL
zurück?
ich in erster Linie die Entwurfsansicht in Access verwenden, aber das ist die SQL als in der Entwurfsansicht von meiner Arbeit erstellt:
SELECT
customtable.ID
,customtable.item
,Sum(companytable.qty_on_hand) AS SumOfqty_on_hand
,companytable.whse
FROM companytable
RIGHT JOIN customtable ON companytable.item = customtable.item
GROUP BY
customtable.ID
,customtable.item
,companytable.whse
HAVING
(((Sum(companytable.qty_on_hand))>0)
AND ((companytable.whse)="A"))
ORDER BY
customtable.ID;
Kennen Sie die NULL-Werte sehen Sie erwarten, wenn Sie die 'HAVING' Klausel entfernen? – HansUp
@HansUp Ja ich mache – whatwhatwhat