ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: lichelleco

[求助] 求高手看看我弄的数据透视表,紧急啊 帮帮忙

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-12-25 14:11 | 显示全部楼层
请帮再看看不知那里出现了问题  在附件

2009 管理.rar

97.82 KB, 下载次数: 20

TA的精华主题

TA的得分主题

发表于 2009-12-25 15:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
修正一个重要错误,原帖[销售订单$]a后面多了一个a,[销售明细$]b后面多了一个b。2009-12-25 20:01


楼主,把你的销售订单表的前两行删掉,销售明细也是。

当发货单号不唯一时,不可以用LEFT JOIN 或Right Join,更改的SQL语句如下,请验证:

select * from
(select 发货单号,型号,名称,0 as 完成量,sum(数量) as 订单量 from [销售订单$] group by 发货单号,型号,名称 union all
select 发货单号,型号,名称,sum(数量) as 完成量, 0 as 订单量 from [销售明细$] group by 发货单号,型号,名称)a
where a.发货单号 in (select distinct 发货单号 from [销售订单$])

[ 本帖最后由 masterexcel 于 2009-12-25 20:02 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-12-25 16:24 | 显示全部楼层
原帖由 masterexcel 于 2009-12-25 15:17 发表
楼主,把你的销售订单表的前两行删掉,销售明细也是。

当发货单号不唯一时,不可以用LEFT JOIN 或Right Join,更改的SQL语句如下,请验证:

select * from
(select 发货单号,型号,名称,0 as 完成量,sum(数量 ...


楼上的,在求平均值的时候,最好用null替换0,不然出现误差的。
ID不唯一,还是因为笛卡儿的关系,造成1对多。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-12-25 16:28 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-12-25 17:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 linpansheng 于 2009-12-25 16:24 发表


楼上的,在求平均值的时候,最好用null替换0,不然出现误差的。
ID不唯一,还是因为笛卡儿的关系,造成1对多。


感谢,的确存在这个问题!0 在聚合函数中被计入,Null不被计入。

非常感谢!

TA的精华主题

TA的得分主题

发表于 2009-12-26 15:56 | 显示全部楼层
22楼的做法:
select * from
(select 发货单号,型号,名称,0 as 完成量,sum(数量) as 订单量 from [销售订单$] group by 发货单号,型号,名称 union all
select 发货单号,型号,名称,sum(数量) as 完成量, 0 as 订单量 from [销售明细$] group by 发货单号,型号,名称)a
where a.发货单号 in (select distinct 发货单号 from [销售订单$])

学习SQL IN 语法
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

TA的精华主题

TA的得分主题

发表于 2009-12-26 16:01 | 显示全部楼层
不用SQL in 的做法,但语句不如22楼的简洁!~~
select * from
(select 发货单号,型号,名称," " as 完成量,sum(数量) as 订单量 from [销售订单$A2:G] group by 发货单号,型号,名称 union all
select 发货单号,型号,名称,sum(数量) as 完成量, " " as 订单量 from [销售明细$A2:G] group by 发货单号,型号,名称)a,
(select distinct 发货单号 from [销售订单$A2:G])b
where a.发货单号 =b.发货单号

TA的精华主题

TA的得分主题

发表于 2009-12-26 16:14 | 显示全部楼层
汇总下楼上的几种解法(前提条件:“提货单号”在销售订单或销售数据中只出现一次,尽管这种情形在实际业务中很少出现,仅为了学习SQL结构),个人认为2楼的这种嵌套用法值得好好琢磨!~~~
2009-12-26_161240.png

TA的精华主题

TA的得分主题

发表于 2009-12-26 16:17 | 显示全部楼层
原帖由 masterexcel 于 2009-12-25 17:01 发表


感谢,的确存在这个问题!0 在聚合函数中被计入,Null不被计入。

非常感谢!

"0 as 完成量" 改成 " " "  as 完成量"吗?
如果是这样,数据似乎不能计算了~~~~

TA的精华主题

TA的得分主题

发表于 2009-12-26 16:44 | 显示全部楼层
原帖由 penghaifeng 于 2009-12-26 16:17 发表

"0 as 完成量" 改成 " " "  as 完成量"吗?
如果是这样,数据似乎不能计算了~~~~


null as 完成量
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-28 06:34 , Processed in 0.055290 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表