Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: lutschi83 am Dezember 19, 2016, 10:34:06

Titel: Problem mit Abfrage
Beitrag von: lutschi83 am Dezember 19, 2016, 10:34:06
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!!!
Titel: Re: Problem mit Abfrage
Beitrag von: Lachtaube am Dezember 19, 2016, 11:52:25
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"));
Titel: Re: Problem mit Abfrage
Beitrag von: DF6GL am Dezember 20, 2016, 11:38:19
Hallo,

nnd hast Du nun das "OR" durch "AND" ersetzt, welches der Vorschlag war...  ??

Welche DS (nach welcher Logik) bekommst Du denn angezeigt ?
Titel: Re: Problem mit Abfrage
Beitrag von: crystal am Dezember 20, 2016, 12:29:49
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
Titel: Re: Problem mit Abfrage
Beitrag von: Lachtaube am Dezember 20, 2016, 14:03:11
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. :)
Titel: Re: Problem mit Abfrage
Beitrag von: Lachtaube am Dezember 20, 2016, 15:11:42
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.