Как получить самую последнюю дату в предложении Maximo CMMS SQL where? - PullRequest
0 голосов
/ 10 октября 2018

Привет. Все, что я пытаюсь получить последний wostatus.changedate в запросе, и у меня есть следующий код для Maximo (CMMS):

workorder.istask = 0 and (workorder.worktype = 'CM' or workorder.worktype = 'CP' or workorder.worktype = 'PM') and (workorder.woclass = 'WORKORDER' or workorder.woclass = 'ACTIVITY') 
and (workorder.schedfinish >= dateadd(week, datediff(week, 0, getdate())+0, 0)
and workorder.schedfinish <= dateadd(week, datediff(week, 0, getdate())+1, 0)
and workorder.schedstart >= dateadd(week, datediff(week, 0, getdate())+0, 0)
and workorder.schedstart <= dateadd(week, datediff(week, 0, getdate())+1, 0))
and workorder.historyflag = 0 and workorder.siteid = 'CORE' and workorder.status != 'WPLAN' and workorder.wonum in
(select wostatus.wonum from wostatus  where (wostatus.status = 'APPR') and wostatus.changeby in ('x', 'xx', 'xxx', 'xxxx' ) and wostatus.changedate >= dateadd(week, datediff(week, 7, getdate()), 2) and wostatus.changedate < dateadd(week, datediff(week, 0, getdate()), 3))

Ниже приведена часть кода, которую мне нужно отфильтроватьсамые последние даты, которые мне понадобятся, будут примерно такими, хотя я не смог привести самую последнюю дату:

(select wostatus.wonum from wostatus  where (wostatus.status = 'APPR') and wostatus.changeby in ('x', 'xx', 'xxx', 'xxxx' ) and wostatus.changedate >= dateadd(week, datediff(week, 7, getdate()), 2) and wostatus.changedate = MOST RECENT DATE)

Весь запрос рассматривает рабочие задания в определенных рабочих типах и по расписанию.в течение текущей недели, когда их статус был последний раз изменен на APPR определенными людьми, и это изменение произошло с определенного времени.Я хотел бы видеть последние изменения wostatus.status = 'APP' этими людьми в wostatus.changeby.

В данный момент мой запрос просматривает только утвержденные даты в определенное время, и я хочу, чтобы это былосамая последняя утвержденная дата.

Я пытался включить в свой запрос Max (wostatus.changedate), однако мне это не удалось.

Возможно ли это?

Спасибо.

1 Ответ

0 голосов
/ 17 октября 2018

Я не уверен, что именно вам нужно, но попробуйте это для своего последнего сегмента (плюс все фильтры изменения и даты)

select wonum from maximo.wostatus  where status = 'APPR' and CHANGEDATE in 
(select max(CHANGEDATE) from maximo.wostatus  where status = 'APPR'
group by wonum)

Это даст вам фильтр из последних утвержденных заказов.Если вам нужны самые последние версии определенных пользователей - попробуйте это

select wonum from maximo.wostatus  where status = 'APPR' and CHANGEDATE in 
(select max(CHANGEDATE) from maximo.wostatus  where status = 'APPR'
group by changeby)
...