쿼리를 실행하고 싶은 테이블이 2 개 있습니다. 첫 번째 테이블은 기본 키IncidentID.
번째 테이블은 기본 키ActionID
을 가지며 첫 번째 테이블과 연결되는 필드 IncidentID
을 가지고있다 dbo.IncidentActions
연락처 dbo.Incidents
이다.Microsoft SQL 쿼리 - 두 번째 테이블에서 마지막 레코드 반환
같은 IncidentID
많은 행동이 있고 그 IncidentID
의 마지막 ActionID
만 IncidentID
당 1 개 행을 반환하고자하고있다.
감사 Andomar은 - 거의 다 내가이 난 그냥 ia.ActionDate =에 GetDate()가 어디에서 설정하고자하는 모든 이제 작업입니다 :)
select *
from (
select i.IncidentID
, ia.ActionID
, RIGHT('' + CAST(DATEDIFF(mi, ia.ActionTime, CONVERT([varchar], GETDATE(), 14))
/60 % 60 AS VARCHAR), 2) + ' hr(s) ' + RIGHT('' + CAST(DATEDIFF(mi, ia.ActionTime, CONVERT([varchar], GETDATE(), 14)) % 60 AS VARCHAR), 2) + ' min(s)' AS LastActionTime
, row_number() over (
partition by i.IncidentID
order by ia.ActionID desc) as rn
from dbo.Incident i
join dbo.IncidentAction ia
on i.IncidentID = ia.IncidentID
) as SubQueryAlias
where rn = 1
약속 - 얻이 수없는 것 그
도움을 주셔서 감사합니다. 다른 Where 조건을 설정하는 데 도움을 주시면 하단의 질문을 업데이트했습니다. –
'캐스팅 (ActionDate as date) = 캐스트 (getdate()로 날짜)' – Andomar