举例:
表1:编号,姓名,性别,月薪
001 王一 男 1000
002 王二 男 800
003 李永 男 2000
004 刘三 男 1500
005 刘万 男 1800
006 王芬 女 1200欲得到的结果:
分析项目 类别 分类 人数 月薪合计
按人员分析 姓王的 男 2 1800
按人员分析 姓王的 女 1 1200
按人员分析 姓李的 男 1 2000
按人员分析 姓刘的 男 2 3300我这样写的:SELECT '按人员分析',CASE WHEN 姓名 like '王%' then '姓王的' WHEN 姓名 like '李%' then '姓李的' WHEN 姓名 like '刘%' then '姓刘的' end ,COUNT(编号),SUM(月薪)
FROM 表1
group by 姓名怎么不行啊?
表1:编号,姓名,性别,月薪
001 王一 男 1000
002 王二 男 800
003 李永 男 2000
004 刘三 男 1500
005 刘万 男 1800
006 王芬 女 1200欲得到的结果:
分析项目 类别 分类 人数 月薪合计
按人员分析 姓王的 男 2 1800
按人员分析 姓王的 女 1 1200
按人员分析 姓李的 男 1 2000
按人员分析 姓刘的 男 2 3300我这样写的:SELECT '按人员分析',CASE WHEN 姓名 like '王%' then '姓王的' WHEN 姓名 like '李%' then '姓李的' WHEN 姓名 like '刘%' then '姓刘的' end ,COUNT(编号),SUM(月薪)
FROM 表1
group by 姓名怎么不行啊?
FROM 表1
group by left(姓名,1),性别
FROM 表1
group by 姓名,性别怎么不行啊?
按人员分析 在职 姓王的 男 2 1800
按人员分析 在职 姓王的 女 1 1200
按人员分析 在职 姓李的 男 1 2000
按人员分析 在职 姓刘的 男 2 3300
SELECT '按人员分析',状态,'姓'+left(姓名,1)+'的',性别,COUNT(1),SUM(月薪)
FROM 表1
group by 状态,left(姓名,1),性别
如果类别改为:如果姓王的为:A,如果姓刘的为 B,如果姓李的为:C,就是要用case when 语句呢?
--=============================================================SELECT '按人员分析',状态,case 姓名 when 'a' then '姓张的' when 'b' then '姓刘的' when 'c' then '姓李的' end,性别,COUNT(1),SUM(月薪)
FROM 表1
group by 状态,姓名,性别
FROM 表1
group by (case when 状态 in(在职,聘用) then '在职' else '离职' end),left(姓名,1),性别