sql查询错误附近的语法不正确

时间:2016-10-17 12:25:07

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

我是Microsoft Visual Studio 2008中的新手。我有一个SQL查询,它显示了每个员工解决每个请求时所花费的时间。数据库是Windows Server 2008上的Microsoft SQL Server。

我想找到一些在6小时及以下以百分比形式解决的请求,以及每位员工所有已解决请求的总和

低于和高于6小时。

这是我的SQL查询,但是当它工作时会产生错误:

  

“>”附近的语法不正确'tmp_table。'

附近的语法不正确

SQL查询:

SELECT id, fio, date_s, tline
         , ( cast ( tline as int) > 6 ) as 'tv' 
        , count (distinct id) as 'cid'
FROM(SELECT id, fio, date_s
     , dbo.get_work_time(date_s, date_f, '12345', '09:00', '18:00', '0')/60 AS 'tline'
     FROM Zno_speed WHERE (date_f > @date)
    GROUP BY fio  
) tmp_table
GROUP BY id, fio, date_s, tline, ( cast ( tline as int) > 6 )

2 个答案:

答案 0 :(得分:1)

SQL Server没有真正的布尔数据类型,因此不支持像cast ( tline as int) > 6这样的布尔表达式

您需要将其重写为案例陈述:

case when cast ( tline as int) > 6 then 1 else 0 end as tv

答案 1 :(得分:1)

CASE WHEN用于( cast ( tline as int) > 6 )

CASE
    WHEN ( cast ( tline as int) > 6 ) THEN 'Your Text'
    ELSE 'Your Text' END