在sql查询中的CASE WHEN语句条件中执行列操作

时间:2014-01-24 15:40:13

标签: sql-server-2008 ms-access

我正在使用vb.net2008开发一个应用程序,数据库为msaccess。我在数据库中设计了一个表,其中列IN_TIME和OUT_TIME的格式为HH:MM:SS。我想要一个结果作为TOT_TIME,它将显示这两列之间的差异。我已经为此写了一个查询,现在我正面临一个问题,如果IN_TIME小于8:00:00 AM,则我不想显示结果显示结果。我曾经使用CASE WHEN,但它没有用,帮帮我。

到目前为止我已尝试过这个

SELECT * 
  (CASE WHEN LATE_LIMIT > '" + date3 + "' 
   THEN ROUND(([PM_OUT]-[OVERIME_LIMIT]),2) 
   ELSE 'N' )AS OverTime 
FROM DTR_REC 

1 个答案:

答案 0 :(得分:0)

您缺少逗号和END案例:

SELECT * 
  ,(CASE WHEN LATE_LIMIT > '" + date3 + "' 
   THEN ROUND(([PM_OUT]-[OVERIME_LIMIT]),2) 
   ELSE 'N' END)AS OverTime 
FROM DTR_REC

但我不确定Access是否支持CASE语句。如果不是这样的话:

SELECT * 
  ,IIF(LATE_LIMIT > '" + date3 + "', ROUND(([PM_OUT]-[OVERIME_LIMIT]),2),'N') AS OverTime 
FROM DTR_REC