У меня есть таблица (PM_ACTION_LOG
) для записей обслуживания, столбцы: ITEM
, PM_TYPE
, LOCATION
, DATE
Мне нужно получить только записи, которые MAX(DATE)
для каждого «предмета», который был не менее 1 месяца с последней даты.Диапазон дат обычно составляет неделю.
Это близко, но не возвращает просроченные пропущенные даты, которые не были записаны в журнал.
Select ITEM,PM_TYPE,LOCATION,MAX(DATE)
FROM PM_ACTION_LOG a
WHERE PM_TYPE = 'PM - Monthly' and LOCATION = 'Cass'
GROUP by ITEM,PM_TYPE,LOCATION
INNER JOIN (Select ITEM,MAX(DATE)as LAST_DATE
FROM PM_ACTION_LOG b
Where DATEADD(MONTH,1,DATE) BETWEEN '2018-12-16' and '2018-12-22'
Group by ITEM,PM_TYPE,LOCATION)
on a.ITEM = b.ItEM
Я хочу получить ПОСЛЕДНЮЮ дату для каждого элемента, которая составляет 30 дней от последней даты и попадает в диапазон дат.Мы проводим ежемесячное профилактическое обслуживание каждую неделю.