ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] sqlserver 3表2个求和查询新建视图的问题.

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-4-9 17:17 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 U_and_Me 于 2024-4-9 17:21 编辑

A表   客户ID(唯一)        客户名                客户地址
B表   销售单号(唯一) 客户ID(多条记录)    销售额
C表   退货单号(唯一)  客户ID(多条记录)   退货额

请问大佬如何做这个视图:    客户ID(唯一),客户名,客户地址,销售汇总,退货汇总啊.
以下是我的写法..但是求和的值不对,应该是重复了..初学者不懂如何3个表2个求和..2个表求和没问题.3个表求和值就不对了.求大佬解答.万分感谢
select a.客户ID,a.客户名,a.客户地址, sum(b.销售额) as 销售汇总,sum(c.退货额) as 退货汇总 from a left join b on a.客户ID=b.客户ID
    join c on a.客户ID=c.客户ID   group by a.客户ID,a.客户名,a.客户地址

TA的精华主题

TA的得分主题

发表于 2024-4-10 09:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
三个表不能这么弄, 笛卡尔积会导致你所谓的求和的值不对
以下一种定法供参考
  1. SELECT isnull(x.客户ID,y.客户ID) 客户ID,
  2.             isnull(x.客户名, y.客户名) 客户名,
  3.            isnull(x.客户地址,y.客户地址) 客户地址,
  4.             x.销售汇总,y.退货汇总
  5. from
  6. (
  7. SELECT a.客户ID, a.客户名, a.客户地址, SUM(b.销售额) AS 销售汇总
  8. FROM a
  9.         LEFT JOIN b ON a.客户ID = b.客户ID
  10. GROUP BY a.客户ID, a.客户名, a.客户地址
  11. ) x
  12. full join
  13. (
  14. SELECT a.客户ID, a.客户名, a.客户地址, SUM(c.退货额) AS 退货汇总
  15. FROM a
  16.         LEFT JOIN c ON a.客户ID = c.客户ID
  17. GROUP BY a.客户ID, a.客户名, a.客户地址
  18. ) y
  19. on x.客户ID=y.客户ID and x.客户名=y.客户名 and x.客户地址=y.客户地址
复制代码


TA的精华主题

TA的得分主题

 楼主| 发表于 2024-4-10 14:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
select x.客戶ID,x.客戶名,x.客戶地址,bb.銷售汇总,cc.退货汇总 from a x left join
(select 客户ID,sum(销售额) as 销售汇总 from b group by 客户ID) as bb on x.客户ID=bb.客户ID
left join (select 客户ID,sum(退货额) as 退货汇总 from c group by 客户ID) as cc on x.客户ID=cc.客户ID

是啊.我后来自己网上查询了解到多个sum()求和会出现重复值,导致求和值不对.以上是我后来写的..经过验证2个求和的值都正确...感谢你的解答啊..
启发是:要先单独计算出求和值后再进行连接...
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-23 06:13 , Processed in 0.024523 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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