У меня есть таблица, которая отслеживает активы в другой точке, но мне нужно выяснить, когда актив входит в точку 4. Мне нужно знать, когда он был в последний раз замечен в точке 1.
Я пытался получить максимальную дату, когда актив находится в точке 1, а дата <, чем дата в точке 4, но безрезультатно. </p>
with CTE as
( select distinct TAG, UID_KEG, CONVERT(VARCHAR(10),Movement_date,105) as
Inbound, L.CAPTION
from MOVEMENT M1
inner join KEG K on M1.UID_KEG = K.UNIQUE_ID
inner join STATION S on M1.UID_STATION = S.UNIQUE_ID
Inner join LOCATION L on S.UID_LOCATION = L.UNIQUE_ID
where DATEPART(year,movement_date) = '2019'
and DATEPART(Month,MOVEMENT_DATE) = '07'
and UID_MOVEMENT_TYPE = 4
)
select CTE.TAG, CTE.Inbound,
MAX(Convert(VARCHAR(10),M2.MOVEMENT_DATE,105)) as 'Last Seen'
from MOVEMENT M2
Inner join CTE on M2.UID_KEG = CTE.UID_KEG
inner join KEG K2 on M2.UID_KEG = K2.UNIQUE_ID
inner join STATION S2 on M2.UID_STATION = S2.UNIQUE_ID
Inner join LOCATION L2 on S2.UID_LOCATION = L2.UNIQUE_ID
where UID_MOVEMENT_TYPE = 1
and Convert(VARCHAR(10),M2.MOVEMENT_DATE,105) < Inbound
group by CTE.TAG, CTE.Inbound
В идеале я хотел бы получить список тегов активов, дату в точке 4, а затем дату в точке 1, которую я затем смогу связать с другими таблицами и собрать дополнительную информацию.
TAGID, Point 4, Point 1
1234, 06/07/2019, 10/03/2019
45678, 5/04/2019, 01/12/2018