У меня есть этот запрос:
SELECT p.ProductName,
dt.MaxTimeStamp,
p.Responsible
FROM Product p
LEFT JOIN (SELECT ProductID, MAX(TimeStamp) AS MaxTimeStamp
FROM StateLog
WHERE State = 0
GROUP BY ProductID, State) dt ON p.ProductID = dt.ProductID
ORDER BY p.ProductName;
Это работает, как и должно, но теперь мне нужно ВЫБРАТЬ "State" тоже.
Самое сложное в том, что я хочу только самую последнюю "метку времени", где "State" было ложным.
Но теперь мне также нужно «State» для самой последней «TimeStamp».
Я пробовал это:
SELECT p.ProductName, dt.State, dt.MaxTimeStamp, p.Responsible
FROM Product p
LEFT JOIN (SELECT ProductID, MAX(TimeStamp) AS MaxTimeStamp, State
FROM StateLog
WHERE State = 0
GROUP BY ProductID, State) dt ON p.ProductID =dt.ProductID
ORDER BY p.ProductName;
Но это не сработало, потому что дало мне «State» для самой последней «TimeStamp».
Так что я надеюсь, что есть некоторые умные головы, которые могут мне помочь. Я предполагаю, что это либо очень просто, либо очень сложно решить.