2012-09-06 3 views
1

날짜 표가있는 작업 표 테이블과 부서 테이블이 있으며 각 작업 표 항목에 올바른 부서를 첨부하려고합니다.SQL 날짜를 날짜 범위와 비교하여 값을 선택합니까?

Timesheet      Department 
----------------------   -------------------------------------- 
Name |Date  |Hours   Name |From  |To  |Dept 
----------------------   -------------------------------------- 
Joe |6/1/2012 | 4    Joe |5/1/2012 |7/31/2012 |West 
Joe |7/8/2012 | 2    Joe |8/1/2012 |1/1/2099 |East 
Joe |8/4/2012 | 8 

작업 표 데이터를 쿼리 할 때 작업 표 첨부 일의 정확한 부서를 원합니다.

Joe |6/1/2012 | 4 |West 
Joe |7/8/2012 | 2 |West 
Joe |8/4/2012 | 8 |East 

내가 힘든 시간이 서로 다른 데이터가 내 목표에 도착하는 설정에 가입하는 방법 주위에 내 머리를 받고 있습니다 쿼리가 출력이됩니다. 가입 할 수있는 정확한 일치하는 날짜가 없지만 날짜 범위 만있는 경우 각 작업 표 항목에 올바른 Dept 값을 어떻게 선택할 수 있습니까? 난 당신이 실제로 테이블에 대한 기본 키를 바라며, 이름에 가입 할 필요는 없습니다

+1

답변

3
SELECT 
    t.Name, 
    t.[Date], 
    t.Hours, 
    d.Dept 
FROM 
    Timesheet t 
    JOIN Department d 
     ON t.Name = d.Name 
     AND t.[Date] BETWEEN d.[From] AND d.To 
+0

와우, 빠른이었고, 그것이 마치 마법처럼 작동합니다. 고마워요! 그리고 이런 신인이되어서 미안해 ;-) – MarcoK

관련 문제