关于使用sql语句sum(case when……)来实现分类汇总功能

比如有一张表有这样四个字段:月份、销售人员、销售数量、产品单价。我希望以月份和销售人员来对销售额进行透视,编写了以下SQL语句:select月份,sum(casewhen... 比如有一张表有这样四个字段:月份、销售人员、销售数量、产品单价。我希望以月份和销售人员来对销售额进行透视,编写了以下SQL语句:
select
月份,
sum (case when 销售人员='姓名1' then 销售数量*产品单价 else 0 end) as 姓名1销售额,
sum (case when 销售人员='姓名2' then 销售数量*产品单价 else 0 end) as 姓名1销售额,
sum (case when 销售人员='姓名3' then 销售数量*产品单价 else 0 end) as 姓名1销售额
from 表格
group by 月份

但是获得的结果老是跟我用EXCEL数据透视表得到的结果不同。以上语句有什么问题吗?
展开
 我来答
大野瘦子
高粉答主

2019-09-24 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:31.7万
展开全部

有两处有笔误,如果结果不同的话,需要检查一下,先对比下总金额,再对比各个的销售额,再检查姓名是否完全一致,EXCEL中经常有前后空格或是不容易显示出来的字符会有影响,用select 月份,姓名,sum(销售数量*产品单价) from 表格 group by 月份,姓名

例如:

select

月份,

sum (case when 销售人员='姓名1' then 销售数量*产品单价 else 0 end) as 姓名1销售额,

sum (case when 销售人员='姓名2' then 销售数量*产品单价 else 0 end) as 姓名1销售额,

sum (case when 销售人员='姓名3' then 销售数量*产品单价 else 0 end) as 姓名1销售额

from 表格

group by 月份,销售人员

扩展资料:

注意事项

case when有用两种用法如下:

用法一:

CASE case_value

    WHEN when_value THEN statement_list

    [WHEN when_value THEN statement_list] ...

    [ELSE statement_list]

END CASE

用法二:

CASE

    WHEN search_condition THEN statement_list

    [WHEN search_condition THEN statement_list] ...

    [ELSE statement_list]

END CASE

TableDI
2024-07-18 广告
`VLOOKUP` 函数在 Excel 中通常是基于单个查找值在表的首列中进行查找,并返回相应行的某个单元格的值。但直接使用 `VLOOKUP` 来根据两个条件进行匹配是不可行的。然而,可以通过一些技巧来实现基于两个条件的查找,比如结合使用... 点击进入详情页
本回答由TableDI提供
创作者BbPV9CfuDM
推荐于2017-09-18 · TA获得超过1445个赞
知道小有建树答主
回答量:977
采纳率:85%
帮助的人:173万
展开全部

你是要按月分和销售人员来对销售额透视,而sql语句只对月份分组,正确结果应该增加分组维度

select
月份,
sum (case when 销售人员='姓名1' then 销售数量*产品单价 else 0 end) as 姓名1销售额,
sum (case when 销售人员='姓名2' then 销售数量*产品单价 else 0 end) as 姓名1销售额,
sum (case when 销售人员='姓名3' then 销售数量*产品单价 else 0 end) as 姓名1销售额
from 表格
group by 月份,销售人员
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
圣奈科长C5403
推荐于2017-10-04
知道答主
回答量:12
采纳率:0%
帮助的人:12.5万
展开全部
语句没问题,有两处有笔误,如果结果不同的话,需要检查一下,先对比下总金额,再对比各个的销售额,再检查姓名是否完全一致,EXCEL中经常有前后空格或是不容易显示出来的字符会有影响,推荐用select 月份,姓名,sum(销售数量*产品单价) from 表格 group by 月份,姓名
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen_hongyang
2014-02-17 · TA获得超过5444个赞
知道大有可为答主
回答量:2790
采纳率:91%
帮助的人:828万
展开全部
语句应该不是这样用的,试试:
select 月份,姓名,sum(销售数量*产品单价) from 表格 group by 月份,姓名
这样跟EXCEL数据透视表得到的结果相同
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tj_angela
2014-02-17 · TA获得超过7529个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2496万
展开全部
因为字段里面有NULL值,透视表算的数据应该是不对的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式