我是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 )
答案 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