У меня есть запрос, который возвращает список устройств, которые имеют несколько «перемещенных» дат.Я хочу только самую старую запись даты.Я использовал функцию MIN, чтобы дать мне самую старую дату, но я все еще получаю несколько записей (однако, я получаю меньше, чем раньше).Я пытался получить более точное JOIN, но больше не мог сузить поля.
Если вы посмотрите на скриншот, первые три строки имеют одинаковое "wonum", но три разных "Перемещенные даты. "Я думаю, что если я смогу каким-то образом взять самую старую «дату переезда» из этих трех и удалить другие строки, это даст мне результат, который я ищу.Тем не менее, я не достаточно опытен, чтобы сделать это (я работаю в SQL только несколько месяцев).Будет ли это работать, или есть лучший способ сузить мои результаты?Мне интересно, если мне нужно выполнить какой-то подзапрос, чтобы получить то, что мне нужно.
Я осмотрелся, но не могу найти ничего, что позволило бы мне удалить строку данных так, как яищуТакже я не могу найти причину, по которой моя функция MIN не обрабатывает данные больше, чем она есть.Ниже приведен код, который я сейчас использую.Спасибо за любую помощь, которая может быть оказана.
SELECT wo.wonum, wo.location, wo.statusdate, wo.status, l.subcontractor,
wo.description, MIN(ast.datemoved) AS 'Moved Date'
FROM workorder wo
JOIN locations l ON wo.location = l.location
JOIN asset a ON wo.location = a.location
-- AND wo.assetnum = a.assetnum
JOIN assettrans ast ON a.assetnum = ast.assetnum
-- AND a.assetid = ast.assetid
WHERE wo.description LIKE '%deteriorating%'
AND wo.status != 'close'
GROUP BY wo.wonum, wo.location, wo.statusdate,
wo.status, l.subcontractor, wo.description
ORDER BY wo.wonum;
Результат запроса DBV SQL
Обновление : Табличные данные