Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Problem mit Abfrage

Begonnen von lutschi83, Dezember 19, 2016, 10:34:06

⏪ vorheriges - nächstes ⏩

lutschi83

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!!!

Lachtaube

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"));
Grüße von der (⌒▽⌒)

DF6GL

Hallo,

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

Welche DS (nach welcher Logik) bekommst Du denn angezeigt ?
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

crystal

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
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...

Lachtaube

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. :)
Grüße von der (⌒▽⌒)

Lachtaube

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.
Grüße von der (⌒▽⌒)