[Err] 42000 - [SQL Server]关键字 'SELECT' 附近有语法错误。 42000 - [SQL Server]')' 附近有语法错误

SELECT vDepartmentID,vFinanceRelation,
sum(tsw.tsw_welfare_amount)as'绩效奖金',
sum(CASE WHEN tsw.tsw_welfare_name = '40288a6a5678c616015678dead580020' THEN
tsw.tsw_welfare_amount ELSE 0 END )as '中夜班',

sum(CASE WHEN tsw.tsw_welfare_name = '40288a6a5678c616015678decf360022' THEN
tsw.tsw_welfare_amount ELSE 0 END )as '加班费',

SELECT vDepartmentID,vFinanceRelation,
sum(tsw.tsw_welfare_amount)as'绩效奖金',
sum(CASE WHEN tsw.tsw_welfare_name = '40288a6a5678c616015678dead580020' THEN
tsw.tsw_welfare_amount ELSE 0 END )as '中夜班',

sum(CASE WHEN tsw.tsw_welfare_name = '40288a6a5678c616015678decf360022' THEN
tsw.tsw_welfare_amount ELSE 0 END )as '加班费',
sum(CASE WHEN tsw.tsw_welfare_name = '40288a6a5678c616015678df110a0024' THEN
tsw.tsw_welfare_amount ELSE 0 END )as '值班费',
sum(CASE WHEN tsw.tsw_welfare_name = '40288a6a5678c616015678df3bfa0026' THEN
tsw.tsw_welfare_amount ELSE 0 END )as '有毒作业',
sum(CASE WHEN tsw.tsw_welfare_name = '40288a6a5678c616015678df72ad0028' THEN
tsw.tsw_welfare_amount ELSE 0 END )as '吸尘费',
sum(CASE WHEN tsw.tsw_welfare_name = '40288a6a5678c616015678dfaf4d002a' THEN
tsw.tsw_welfare_amount ELSE 0 END )as '防暑降温费',
sum(CASE WHEN tsw.tsw_welfare_name = '40288a6a5678c616015678e003d5002c' THEN
tsw.tsw_welfare_amount ELSE 0 END )as '集中供热采暖补助',
sum(CASE WHEN tsw.tsw_welfare_name = '40288a6a5678c616015678e046dd002e' THEN
tsw.tsw_welfare_amount ELSE 0 END )as '冬季采暖补助',
count(*) AS number,
count(SELECT tsw.tsw_empolyee_id WHERE tsw.tsw_welfare_type='40288a6a5678c616015678dcc2a60010')
FROM T_Employee te
INNER JOIN T_Salary_Welfare_Other tsw ON te.vEmployeeID = tsw.tsw_empolyee_id

GROUP BY vDepartmentID,vFinanceRelation

表面看没看出错误,是不是这句
count(SELECT tsw.tsw_empolyee_id WHERE tsw.tsw_welfare_type='40288a6a5678c616015678dcc2a60010')

我没有这么用过,我们尝试修改下看看,改成下面
sum(case tsw.tsw_welfare_type when '40288a6a5678c616015678dcc2a60010' then 1 else 0 end)追问

没有错了,但是查询结果为0,没有得到我想查找的人数

追答

40288a6a5678c616015678dcc2a60010是不是这个没有值?
sum用于计算,里面的内容只要是tsw.tsw_welfare_type 等于40288a6a5678c616015678dcc2a60010的,都返回1,然后由sum累加,这个应该是没有问题的,你检查下数据

温馨提示:答案为网友推荐,仅供参考
相似回答