을 찾고 나는 테이블 @tblChildData
의 MAX ChildDateTime
및 IsLast
내가 쿼리 아래로 업데이트 할 수 있어요 = 1더 나은 SQL 쿼리
Declare @tblData Table(DId Int, TypeId Int, LastDateTime DateTime)
Insert Into @tblData Values(1, 1, Null), (2, 2, Null), (3, 2, Null)
Declare @tblChildData Table(CId Int, DId Int, ChildDateTime DateTime, IsLast Bit)
Insert Into @tblChildData Values (10, 1, '2016-09-20 07:47:03.000', Null)
, (11, 2, '2016-09-20 08:47:03.000', Null)
, (12, 2, '2016-09-20 09:32:03.000', 1)
, (13, 2, '2016-09-20 10:47:03.000', Null)
, (14, 2, '2016-09-20 11:32:03.000', 1)
, (15, 1, '2016-09-20 06:47:03.000', Null)
와 @tblData
테이블의 LastDateTime
열을 업데이트 할 필요가 있지만, 더 나은 쿼리를 찾고. 감사!!!
UPDATE UQ
SET UQ.LastDateTime = (
SELECT MAX(D.ChildDateTime)
FROM @tblData C
JOIN @tblChildData D ON C.DId = D.DId
AND C.TypeId = 2
AND D.IsLast = 1
)
FROM @tblData UQ
JOIN @tblChildData PD ON UQ.DId = PD.DId
AND UQ.TypeId = 2
AND PD.IsLast = 1
SELECT * FROM @tblData
감사를 시도 할 수 있습니다 쿼리의 실행 계획 비교입니다 더 나은 편집 – user584018