我在SQL SERVER 2005中有2个表:
firts table:
Tanggal
2015年1月1日
2015年1月2日
2015年1月3日
2015年1月4日
2015年1月5日
2015年1月6日
第二张表:
Tanggal Jam_Masuk Jam_Pulang
2015年1月1日08:00:00 17:00:00
2015年1月3日08:00:00 17:00:00
2015年1月5日08:00:00 17:00:00
2015年1月6日17时00分00秒八点00分00秒
我想选择这样:
Tanggal Jam_Masuk Jam_Pulang
总状况
2015/01/01 08:00:00 17:00:00 09:00:00 OK
2015年1月2日 - - : - - - - - - : - ALPHA / IZIN
2015/01/03 08:00:00 17:00:00 09:00:00 OK
2015年1月4日 - - : - - - - - - : - ALPHA / IZIN
2015/01/05 08:00:00 17:00:00 09:00:00 OK
2015/01/06 08:00:00 17:00:00 09:00:00 OK
注意:字段总数= Jam_Pulang - Jam_Masuk
先谢谢
答案 0 :(得分:1)
使用以下查询获取所需的输出
SELECT t1.Tanggal,
t2.Jam_Masuk,
t2.Jam_Pulang,
Datepart(hh, Cast(t2.Jam_Pulang AS TIME)) - Datepart(hh, Cast(t2.Jam_Masuk AS TIME)) AS Total,
CASE
WHEN Jam_Masuk IS NULL
AND Jam_Pulang IS NULL THEN 'ALPHA/IZIN'
ELSE 'ok'
END [status]
FROM firts_table t1
LEFT JOIN second_table t2
ON t1.Tanggal = t2.Tanggal
<强>输出强>
Tanggal Jam_Masuk Jam_Pulang Total status
2015-01-01 00:00:00.000 08:00:00 17:00:00 9 ok
2015-01-02 00:00:00.000 NULL NULL NULL ALPHA/IZIN
2015-01-03 00:00:00.000 08:00:00 17:00:00 9 ok
2015-01-04 00:00:00.000 NULL NULL NULL ALPHA/IZIN
2015-01-05 00:00:00.000 08:00:00 17:00:00 9 ok
2015-01-06 00:00:00.000 08:00:00 17:00:00 9 ok