Hallo Leute,
ich habe ein Problem mit einer Abfrage:
SELECT tbl_order_entry.status_delivered, tbl_order_entry.Delivery_number, tbl_order_entry.customer_order_number, tbl_order_entry.distributor, tbl_order_entry.article, tbl_order_entry.type, tbl_order_entry.quantity, tbl_order_entry.selling_price, tbl_order_entry.Total, tbl_order_entry.moq, tbl_order_entry.remarks_1, tbl_order_entry.remarks_2, tbl_order_entry.delivery_number_ID, tbl_order_entry.Stock_Status, tbl_order_entry.part_delivery_check, tbl_order_entry.delivery_status
FROM tbl_order_entry
WHERE (((tbl_order_entry.status_delivered)=False) AND ((tbl_order_entry.Stock_Status)="OK")) OR (((tbl_order_entry.delivery_status)="OK"));
Zeigt mir leider alle Datensätze an.
Ich hätte aber gern, dass nur die Datensätze angezeigt werden, wo "...Status_delivered=False" und "...stock_status="OK" und "...Status_delivered=False" und delivery_status="OK".
Ist dass möglich? Kann mir vielleicht bitte den String aufzeigen?
Vielen Dank schon einmal!!!
Tja, und warum verwendest Du dann ein Oder (OR) in der Abfrage, die übrigens ohne Zeilenumbrüche schwierig zu lesen ist?SELECT tbl_order_entry.status_delivered
, tbl_order_entry.Delivery_number
, tbl_order_entry.customer_order_number
, tbl_order_entry.distributor
, tbl_order_entry.article
, tbl_order_entry.type
, tbl_order_entry.quantity
, tbl_order_entry.selling_price
, tbl_order_entry.Total
, tbl_order_entry.moq
, tbl_order_entry.remarks_1
, tbl_order_entry.remarks_2
, tbl_order_entry.delivery_number_ID
, tbl_order_entry.Stock_Status
, tbl_order_entry.part_delivery_check
, tbl_order_entry.delivery_status
FROM tbl_order_entry
WHERE (((tbl_order_entry.status_delivered)=False)
AND ((tbl_order_entry.Stock_Status)="OK"))
OR (((tbl_order_entry.delivery_status)="OK"));
Hallo,
nnd hast Du nun das "OR" durch "AND" ersetzt, welches der Vorschlag war... ??
Welche DS (nach welcher Logik) bekommst Du denn angezeigt ?
Hallo,
ich glaube, in der Abfrage ist ein kleiner Fehler:
statt
WHERE (((tbl_order_entry.status_delivered)=False)
AND ((tbl_order_entry.Stock_Status)="OK"))
OR (((tbl_order_entry.delivery_status)="OK"));
müsste es mEn heißen:
WHERE (((tbl_order_entry.status_delivered)=False)
123 /3 /2
AND ((tbl_order_entry.Stock_Status)="OK")
23 /3 /2
OR ((tbl_order_entry.delivery_status)="OK") );
23 /3 /2/1
Zahlen zur Verdeutlichung der Klammerebenen, also:
WHERE (((tbl_order_entry.status_delivered)=False)
AND ((tbl_order_entry.Stock_Status)="OK")
OR ((tbl_order_entry.delivery_status)="OK"));
lg
crystal
Das magische an den Access'schen Klammern ist, dass sie (vermutlich als Hint für den Ausdrucksdienst) inflationär zum Einsatz kommen - dem grafischen Abfrage-Editor sei gedankt. Sowohl die beiden gezeigten als auch die folgende Bedingung sind alle inhaltlich gleichwertig.WHERE tbl_order_entry.status_delivered = False
AND tbl_order_entry.Stock_Status = "OK"
OR tbl_order_entry.delivery_status = "OK";Ein Klammerpaar anders gesetzt, führt aber zu einem anderem Ergebnis.WHERE tbl_order_entry.status_delivered=False
AND (tbl_order_entry.Stock_Status="OK"
OR tbl_order_entry.delivery_status="OK");
Unser Thread-Ersteller will aber vermutlich nur das Wort OR gegen AND austauschen - vielleicht hat er's auch schon und lässt es uns nur nicht wissen. :)
Das war aber jetzt eher Zufall, dass es zu einer Lösung kam, denn aus der Fragestellung ggeht die Lösung nicht hervor. Du hättest nach: Bedingung1 und Bedingung2 oder Bedingung1 und Bedingung3 fragen sollen, um richtig verstanden zu werden.