Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Select das ich nicht zusammen bekomme (https://www.delphipraxis.net/166136-select-das-ich-nicht-zusammen-bekomme.html)

Chistian 31. Jan 2012 18:07

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

DeddyH 31. Jan 2012 18:23

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
  )

Chistian 1. Feb 2012 09:20

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 12:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz