2013-03-11 18 views
0

使用SQL Server 2005如何使日期和時間自動狀態

表1

休假表

ID startDate EndDate 

001 21/01/2013 20/02/2013 
002 24/01/2013 13/02/2013 

表2

ID DATE TIME STATUS 

001 21/01/2013 NULL ANNUAL 
001 22/01/2013 NULL 
001 23/01/2013 NULL 
001 24/01/2013 NULL Holiday (Sunday) 
001 25/01/2013 02:00 Present 

在表2中,我想顯示狀態爲不存在,年假結束狀態顯示在系統中

1)年假後,系統顯示爲「不可用」,因爲年假延長至可用時間行 2)假期也應顯示爲缺席,因爲時間不可用。在表2

期望輸出

ID DATE TIME STATUS 

001 21/01/2013 NULL ANNUAL 
001 22/01/2013 NULL Absent 
001 23/01/2013 NULL Absent 
001 24/01/2013 NULL Absent 
001 25/01/2013 02:00 Present 

如何使下列條件的查詢

系統顯示從表1和可用時間排annaul休假結束日期之間的缺席。需要查詢幫助。

回答

0

這很難理解你的問題,但這有多接近?

SELECT 
T2.ID, T2.Date, T2.Time, 
CASE 
WHEN T2.Date = T1.startDate THEN 'Annual' 
WHEN T2.Date BETWEEN T1.startDate AND T2.endDate THEN 'Absent' 
END Status 
FROM 
Table2 T2 
LEFT OUTER JOIN 
Table1 T1 
ON T2.ID = T1.ID 
AND T2.Date BETWEEN T1.startDate AND T2.endDate 
WHERE T2.ID = '001' 
相關問題