在2表中选择具有空值的日期

时间:2015-12-08 11:03:52

标签: sql-server

我在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

先谢谢


  

1 个答案:

答案 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
相关问题