select
TAKIPNO
from TBLHAREKET
where HAREKETID in (select max(HAREKETID) from TBLHAREKET group by TAKIPNO)
and ACK = 'Üretimde.';
SELECT * FROM TBLHAREKET WHERE (SELECT ACK FROM TBLHAREKET WHERE ACK = "Üretimde." ORDER BY HEREDATE DESC LIMIT 1) = "Üretimde." GROUP BY TAKIPNO;
Anladığım kadarıyla TAKIPNO alanın birden fazla kez bu tabloda kullanılıyor o yüzden TAKIPNO alanına göre ACK si en son "Üretimde. " olan verileri çekmek istiyosun. Bu sorgunun işini göreceğini düşünüyorum. Diğer tablolar ile joinlersen diğer tablolardaki alanlara da ulaşabilirsin.
birşey daha sormak istiyorum aşşağıda ki tablom var yan ic kalıpları takip eden ic kalıplar birden cok stoğa sahip olabiliyor.
Ben mesela birine üretimden döndü diye işaretlediğimde örnek ICMOVEID 3 olanı baz alalım aşşağıya yeni hareket ekliyor
ICHADDDEID = 1 STOK=1 DATE1= Günün Tarihi DURUMID= 1 yapıyor cünkü geri geldi diyor.
Sonra ben bunları tekrar geri sorgulayıp sıralamak istiyorum. fakat bana üretimde olanlar gerekiyor.
Bir önceki kaydı güncelleme yapmadığım için verileri hep alt alta kaydettiriyorum o yüzden sorgulamamda hep üretimde kileri gösteriyor. Herşey denedim gözden kaçan birşey mi var?
SELECT
TBLICMOVE.ICMOVEID,
TBLICKALIP.ICKALIPID,
TBLICKALIP.MODEL AS ICHADDE,
TBLICMOVE.STOK,
TBLICMOVE.DATE1,
TBLHAREKETDURUM.HAREKET,
TBLICMOVE.ACK,
TBLMODELLER.MODEL AS MODEL
FROM TBLICMOVE
LEFT JOIN TBLMODELLER ON TBLMODELLER.MODELID = TBLICMOVE.MODELID
LEFT JOIN TBLICKALIP ON TBLICKALIP.ICKALIPID = TBLICMOVE.ICHADDEID
LEFT JOIN TBLHAREKETDURUM ON TBLHAREKETDURUM.HSID = TBLICMOVE.DURUMID
WHERE ICMOVEID IN (SELECT MAX(ICMOVEID) FROM TBLICMOVE GROUP BY TBLICMOVE.DURUMID,ICHADDEID)
AND ACK = 'Üretimde.'
ORDER BY ICMOVEID DESC;