2013-05-06 12 views
1

저는 액세스 코딩에 관해서별로 숙련되지 않았습니다. SQL로 작업하는 편이 낫습니다. 특정 영역의 일부 직원을 끌어들이도록 코드를 설정했습니다. 그러나 하나의 테이블에는 직원의 전체 기록이 있으므로 REC EFF STT DT 필드를 들었을 때 각각의 위치가 시작되었을 수 있습니다. 나는 단지 가장 최근의 (그들의 현재) 일만 필요로한다. MAX DATE를 포함하여 WHERE 문에서 하위 쿼리가 필요하다는 것을 알고 있지만 제대로 형식을 지정하는 방법을 알 수 없습니다. 그들이 있었다 각 작업에 대한 기록을 포함하기 때문에하위 쿼리 액세스 중

SELECT O896IA_VEMPPRSA.EMP_NA, O896IA_VEMPPRSA.SYS_EMP_ID_NR, 
    ([O896IA_VEMPPRSA].[REG_NR]) & ([O896IA_VEMPPRSA].[DIS_NR]) AS RRDD, 
    O867IA_VJOBHST.BUS_UNT_REF_NR, O867IA_VJOBHST.REC_EFF_STT_DT 
FROM O867IA_VJOBHST 
INNER JOIN O896IA_VEMPPRSA 
    ON O867IA_VJOBHST.SYS_EMP_ID_NR = O896IA_VEMPPRSA.SYS_EMP_ID_NR 
WHERE (((([O896IA_VEMPPRSA].[REG_NR]) & ([O896IA_VEMPPRSA].[DIS_NR])) 
     IN ("2010","2108","2029","2230","2580")) AND 
     ((O867IA_VJOBHST.BUS_UNT_REF_NR) IN  
     ("ISBOP","ISCIM","ISGAP","ISCRA","ISCTP","ISOPS","ISSCS","ISSSP","ISTTG"))) 
GROUP BY O896IA_VEMPPRSA.EMP_NA, O896IA_VEMPPRSA.SYS_EMP_ID_NR, 
     ([O896IA_VEMPPRSA].[REG_NR]) & ([O896IA_VEMPPRSA].[DIS_NR]), 
     O867IA_VJOBHST.BUS_UNT_REF_NR, O867IA_VJOBHST.REC_EFF_STT_DT; 

단순히, MAX 날짜를 사용할 수 없습니다. 현재 날짜가 가장 최근 날짜 일뿐입니다.

답변

1

당신은 당신의 where 절에 조건을 추가 할 수 있어야한다 :

and O867IA_VJOBHST.REC_EFF_STT_DT = (select max([hist].REC_EFF_STT_DT) 
from O867IA_VJOBHST as [hist] 
where [hist].SYS_EMP_ID_NR = O896IA_VEMPPRSA.SYS_EMP_ID_NR) 

이 같은 최대 날짜가 두 개의 항목이되지 않습니다 가정합니다.

+0

정말 고마워요. – user2119980