为了账号安全,请及时绑定邮箱和手机立即绑定

求sql 统计查询

求sql 统计查询

蝴蝶刀刀 2018-12-07 01:25:00
表 a: 员工销售统计表 部门   工号   姓名   负责地区   销售金额   部门一   001   员工一   北京   2   部门一   002   员工二   上海   3   部门一   003   员工三   上海   4   部门一   003   员工三   上海   5   部门二   004   员工四   北京   6   部门二   004   员工四   北京   7   部门二   005   员工五   上海   8        表 a: 员工销售统计表 部门   工号   姓名   负责地区   销售金额   部门一   001   员工一   北京   2   部门一   002   员工二   上海   3   部门一   003   员工三   上海   4   部门一   003   员工三   上海   5   部门二   004   员工四   北京   6   部门二   004   员工四   北京   7   部门二   005   员工五   上海   8       按部门统计结果:   /*************************************************************/ 工号   姓名   上海   北京   出现数量1   金额1   出现数量2   金额2   001   员工一   0   0   1   2   002   员工二   1   3   0   0   003   员工三   2   9   0   0   004   员工四   0   0   2   13   005   员工五   1   8   0   0    /***************************************************************/   我把问题再简化一下,目前已经可以实现下面的结果,但是上面的结果如何实现?   SELECT 工号 ,姓名 ,COUNT(姓名) AS 数量1 ,   sum(金额) as 金额1 ,Department FROM [表a]   where 地区=’上海’    GROUP BY 工号 ,姓名 工号   姓名   上海   出现数量1   金额1   001   员工一   0   0   002   员工二   1   3   003   员工三   2   9   004   员工四   0   0   005   员工五   1   8   SELECT 工号 ,姓名 ,COUNT(姓名) AS 数量2 ,   sum(金额) as 金额2 ,Department FROM [表a]   where 地区=’北京’    GROUP BY 工号 ,姓名 工号   姓名   北京   出现数量2   金额2   001   员工一   1   2   002   员工二   0   0   003   员工三   0   0   004   员工四   2   13   005   员工五   0   0  
查看完整描述

3 回答

?
MM们

TA贡献1886条经验 获得超2个赞

一共4个查询语句
select * from (select 工号,姓名,count(case 负责地区 when '上海' then 姓名 end) as 上海出现数量,isNull(sum(case 负责地区 when '上海' then 销售金额 end),0) as 上海金额 from 员工销售统计表 group by 工号,姓名
) as 上海

select * from (select 工号,姓名,count(case 负责地区 when '北京' then 姓名 end) as 北京出现数量,isNull(sum(case 负责地区 when '北京' then 销售金额 end),0) as 北京金额 from 员工销售统计表 group by 工号,姓名
) as 北京

select * from (SELECT DISTINCT 姓名 AS 姓名 FROM  员工销售统计表) AS 姓名


SELECT     dbo.上海.工号, dbo.姓名.姓名, dbo.北京.北京出现数量, dbo.北京.北京金额, dbo.上海.上海出现数量, dbo.上海.上海金额
FROM         dbo.姓名 INNER JOIN
                      dbo.上海 ON dbo.姓名.姓名 = dbo.上海.姓名 INNER JOIN
                      dbo.北京 ON dbo.姓名.姓名 = dbo.北京.姓名

查看完整回答
反对 回复 2019-01-07
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

先不管效率,可多写几个子查询即可

查看完整回答
反对 回复 2019-01-07
?
精慕HU

TA贡献1845条经验 获得超8个赞

怎么把子查询拼接在一起呢?
查看完整回答
反对 回复 2019-01-07
  • 3 回答
  • 0 关注
  • 505 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信