2017-05-19 2 views
-1

Employee Starting Date를 기준으로 가장 최근의 레코드 만 반환하도록 쿼리를 가져와야합니다. 나는 최대 날짜 내부 조인이 필요하다고 생각하지만 작동시키지 못합니다. 누구든지 나에게 충고가 있니? 나는 SQL Developer를 위해 TOAD를 사용하고있다.날짜를 기준으로 최신 레코드 만 반환하는 방법

SELECT 
    e.No_, 
    ep.[Classification Description], 
    ep.[Employee Starting Date], 
    ep.[Standard Rate], 
    ep.[Over Award Rate], 
    ep.[Employee Rate], 
    p.[Job Title], 
    e.[First Name], 
    e.[Last Name], 
    e.[Payroll No_] 
FROM Employee e, 
    [Payroll Employee] p, 
    [Employee Pay Rate] ep 
WHERE e.No_ = p.[Employee No_] 
AND e.No_ = ep.[Employee No_] 
AND ep.[Employee No_] = p.[Employee No_] 
AND e.[Payroll No_] = 'PAY7' 
AND CAST(e.[Termination Date] AS date) = '1753-01-01' 
+1

당신은 모든 직원이 가장 최근의 기록을 원하거나 당신은 단지 가장 최근의 기록을 원하는합니까? 그리고 어느 데이트? '직원 시작일'? –

+1

스키마 샘플 데이터와 원하는 출력을 추가하십시오 –

+0

추가 질문 ..이게 진짜인가요? " '1753-01-01'" –

답변

0

다음과 같은 방법으로 그룹을 할 수 있으며, 아래와 같이 따라 최소 또는 최대 날짜를 얻을 :

SELECT 
    e.No_, 
    ep.[Classification Description], 
    MAX(ep.[Employee Starting Date]) as [Employee Starting Date], --hope it is min based on your logic 
    ep.[Standard Rate], 
    ep.[Over Award Rate], 
    ep.[Employee Rate], 
    p.[Job Title], 
    e.[First Name], 
    e.[Last Name], 
    e.[Payroll No_] 
FROM Employee e 
    INNER JOIN [Payroll Employee] p 
    ON e.No_ = p.[Employee No_] 
    INNER JOIN [Employee Pay Rate] ep 
    ON e.No_ = ep.[Employee No_] 
    AND ep.[Employee No_] = p.[Employee No_] 
WHERE 
    e.[Payroll No_] = 'PAY7' 
AND CAST(e.[Termination Date] AS date) = '1753-01-01' 
GROUP BY 
    e.No_, 
    ep.[Classification Description], 
    ep.[Standard Rate], 
    ep.[Over Award Rate], 
    ep.[Employee Rate], 
    p.[Job Title], 
    e.[First Name], 
    e.[Last Name], 
    e.[Payroll No_] 
관련 문제