选择列表中的列 'tb_masCustomer.CustomerName' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

mc920879227 2012-08-14 08:59:04
select c.CustomerName,
case when a.EwStatus = 'N' then '新入职'
when a.EwStatus = 'A' then '在职'
when a.EwStatus = 'W' then '离职办理中'
when a.EwStatus = 'L' then '已离职' end as State,
case when e.GenderID = 2 then '女'
when e.GenderID = 1 then '男' end as Gender,
count(*) as Sum
from tb_masEmployeeEmployer a
left join tb_masCustomer c on a.CustomerID = c.CustomerID
left join tb_masEmPersonalInfo e on a.EmPersonalInfoID = e.EmPersonalInfoID
where 1 = 1 and a.Disabled = 0 and e.GenderID is not null
...全文
181 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
叶子 2012-08-14
  • 打赏
  • 举报
回复

--1.case when 前面加上max函数
--2.后面group by c.CustomerName
select c.CustomerName,
max(case when a.EwStatus = 'N' then '新入职'
when a.EwStatus = 'A' then '在职'
when a.EwStatus = 'W' then '离职办理中'
when a.EwStatus = 'L' then '已离职' end as State,
case when e.GenderID = 2 then '女'
when e.GenderID = 1 then '男' end) as Gender,
count(*) as [sum]
from tb_masEmployeeEmployer a
left join tb_masCustomer c on a.CustomerID = c.CustomerID
left join tb_masEmPersonalInfo e on a.EmPersonalInfoID = e.EmPersonalInfoID
where 1 = 1 and a.Disabled = 0 and e.GenderID is not null
group by c.CustomerName
  • 打赏
  • 举报
回复
需要添加group by c.CustomerName
select c.CustomerName,
case when a.EwStatus = 'N' then '新入职'
when a.EwStatus = 'A' then '在职'
when a.EwStatus = 'W' then '离职办理中'
when a.EwStatus = 'L' then '已离职' end as State,
case when e.GenderID = 2 then '女'
when e.GenderID = 1 then '男' end as Gender,
count(*) as Sum
from tb_masEmployeeEmployer a
left join tb_masCustomer c on a.CustomerID = c.CustomerID
left join tb_masEmPersonalInfo e on a.EmPersonalInfoID = e.EmPersonalInfoID
where 1 = 1 and a.Disabled = 0 and e.GenderID is not null
group by c.CustomerName

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧