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
没有错了,但是查询结果为0,没有得到我想查找的人数
追答40288a6a5678c616015678dcc2a60010是不是这个没有值?
sum用于计算,里面的内容只要是tsw.tsw_welfare_type 等于40288a6a5678c616015678dcc2a60010的,都返回1,然后由sum累加,这个应该是没有问题的,你检查下数据