Specyficzny warunek w zapytaniu SQL

Odpowiedz Nowy wątek
2015-09-07 14:17
Krwawy Szczur
0

Witam,

Mam problem, chciałem wyciągnąć wszystkie zamówienia, których obecny status = "Przygotowywanie przesyłki". Obecny status trzymany jest w tabeli STAN_ZAM. Problem polega na tym, że chcę wyciągnąć właśnie wszystkie zamówienia, których OSTATNIO DODANY status = "Przygotowywanie przesyłki". Więc muszę pominąć ten status, gdy po nim został dodany jakiś inny.

Moje zapytanie które udało mi się stworzyć wygląda tak, lecz nie działa ono poprawnie. Mam problem właśnie z warunkiem, w którym sprawdzam ten ostatnio dodany status.

SELECT* FROM ZAMOWIENIA LEFT JOIN STAN_ZAM ON ZAMOWIENIA.Id_zamowienia = STAN_ZAM.Id_zamowienia WHERE (SELECT Nazwa FROM STAN_ZAM ORDER BY Data DESC LIMIT 1) = 'Przygotowywanie przesyłki'

Ktoś mnie naprowadzi jak te zapytanie powinno być zbudowane?

Pozostało 580 znaków

2015-09-07 14:27
0

Pokaż strukturę tabeli STAN_ZAM.
Jest tam jakaś data czy id (czyli "coś" po czym można rozpoznać który stan dla danego zamówienia jest najnowszy)?

edytowany 1x, ostatnio: hipekk, 2015-09-07 14:27
ORDER BY DATA DESC - chyba jest :P - Fi3rce 2015-09-07 14:29
Gorzej jak jest sama data, a status zmienia się parę razy dziennie :P - hipekk 2015-09-07 14:33
No bez przesady :D - Fi3rce 2015-09-07 15:11

Pozostało 580 znaków

2015-09-07 14:29
Krwawy Szczur
0

hipekk, jest zarówno Id_stan_zam jak i Data

Pozostało 580 znaków

2015-09-07 14:30
Krwawy Szczur
0

Fi3rce, no nic nie poradzę na obecną chwilę, ponieważ tak już wygląda to w obecnym sklepie. Muszę dlatego jakoś wyciągnąć te zamówienia w obecnej strukturze w jakiej są przechowywane

Pozostało 580 znaków

2015-09-07 14:33
0

Pokaż szczegółową strukturę tych dwóch tabel + parę przykładowych rekordów.

Pozostało 580 znaków

2015-09-07 14:41
Krwawy Szczur
2015-09-07 14:47
Krwawy Szczur
0

ZAMOWIENIA:

STAN_ZAM:

ZAMOWIENIA rekordy:

STAN_ZAM rekordy:

Pozostało 580 znaków

2015-09-07 14:59
3
SELECT * FROM ZAMOWIENIA  zam
LEFT JOIN STAN_ZAM stzaz ON zam.Id_zamowienia = stzaz.Id_zamowienia AND stzaz.id_stan_zam IN (SELECT MAX(id_stan_zam) FROM STAN_ZAM WHERE STAN_ZAM.Id_zamowienia = zam.Id_zamowienia)
edytowany 1x, ostatnio: hipekk, 2015-09-07 15:00

Pozostało 580 znaków

2015-09-07 15:11
Krwawy Szczur
0

hipekk, dzięki wieeelkie! :) Działa jak należy :) Super, dzięki za pomoc kolego

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0