在带有CASES的连接表上使用Datediff()

时间:2016-12-07 18:23:39

标签: sql sql-server sql-server-2008

我正在尝试确定计算日期的最佳方法(以分钟为单位)。我正在尝试确定注册过程(第8阶段和第10阶段)两个阶段之间的时间间隔,但我只需要处理阶段10的任何人。有两个表:注册和注册历史记录由注册ID号(摆脱)

我收到以下错误:

  

关键字'CASE'附近的语法不正确。

从下面。

Select datediff(Minute,startdate,enddate)
from Registration r with(nolock)
inner join registrationstagehistory rh with(nolock) on r.rid=rh.rhrid

可能是这样的:

 CASE WHEN R.RsID=10 THEN
        CASE rh.rhrsid
            WHEN 8 then 'startdate'
            WHEN 10 THEN 'enddate'
        ELSE NULL
    END
END

1 个答案:

答案 0 :(得分:0)

你错过了一个CASE语句的END(它出现的内部语句但我不能确定我的语境):

CASE WHEN R.RsID=10 THEN
    CASE rh.rhrsid
        WHEN 8 then 'startdate'
        WHEN 10 THEN 'enddate'
        ELSE NULL
    END
END