![]() |
Datenbank: mysql • Version: 5 • Zugriff über: unidac
Select das ich nicht zusammen bekomme
Vielleicht kann mich jemand von der Leitung heben.
Ich will aus einer Auftragsbearbeitung mir alle Aufträge anzeigen lassen, deren Positionen ALLE den Status Fertig(3) haben. Allso nicht die wo die eine Position fertig und die andere auf bestellt steht. Select tbl_orders.id from tbl_orders left join tbl_basket on tbl_basket.orderId = tbl_orders.id where tbl_basket.state = 3 and tbl_orders.ordersstate = 2 Hier werden mir die Aufträge gezeigt die mind. 1 Position auf 3 steht, aber nicht explizit nur die Aufträge wo ALLE auf 3 stehen. tbl_basket.state enthält den Positionstatus und tbl_orders.state den aktuellen Auftragsstatus. Kann mir jemand einen Tipp geben. Gruß Christian |
AW: Select das ich nicht zusammen bekomme
Ungetestet:
SQL-Code:
SELECT
O.id FROM tbl_orders O JOIN tbl_basket B ON B.orderId = O.id WHERE B.state = 3 AND O.ordersstate = 2 AND NOT EXISTS( SELECT * FROM tbl_basket B2 WHERE B2.orderId = B.orderId AND B2.state <> 3 ) |
AW: Select das ich nicht zusammen bekomme
Einwandfrei,
zuerst war die Abfrage langsam. Dies wurde aber mit einem Index auf orderstate und state behoben. Nochmals vielen Dank. Gruß Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz