ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] SQL语句如何做多数列合计,同时以某一特定数列排序?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-11-10 23:21 | 显示全部楼层 |阅读模式
每天要经手的数据太多了,一个人干不完活 ,天天用数据透视,搞不不定,才学会了点sql语句,求老师们帮忙解答下,谢谢

月报表.zip

272.69 KB, 下载次数: 21

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-11 00:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
自己先顶一下

TA的精华主题

TA的得分主题

发表于 2019-11-11 07:56 | 显示全部楼层
常规抓取作一表
SQL ="select 货号,品类,售卖日期,CTR FROM [数据$]"
求统计的作一表
SQL ="select sum(周销量),sum(uv),sum(收藏人数),sum(加购人数),(收藏人数+加购人数)/uv as 收藏加购率,""  FROM [数据$]"

TA的精华主题

TA的得分主题

发表于 2019-11-11 08:48 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-11 10:01 | 显示全部楼层
cui26896 发表于 2019-11-11 07:56
常规抓取作一表
SQL ="select 货号,品类,售卖日期,CTR FROM [数据$]"
求统计的作一表

月报表,是希望坐在一张表里面比较直观看到产品对比,还是谢谢你。

TA的精华主题

TA的得分主题

发表于 2019-11-11 10:33 | 显示全部楼层
ahesay 发表于 2019-11-11 10:01
月报表,是希望坐在一张表里面比较直观看到产品对比,还是谢谢你。

http://club.excelhome.net/forum. ... 3987&extra=page%3D1

同一工作薄中,可考虑用字典实现数据透视

TA的精华主题

TA的得分主题

发表于 2019-11-11 11:23 | 显示全部楼层
  1.     SQL = "TRANSFORM Sum(销量) AS 销量之合计 " & _
  2.                 "SELECT 货号, 品类, 首卖日期, " & _
  3.                 "Sum(销量) AS 周销量, Sum(uv) AS uv, " & _
  4.                 "Sum(收藏人数) AS 收藏人数, Sum(购买人数) AS 加购人数, " & _
  5.                 "Round((Sum(收藏人数)+Sum(购买人数))/Sum(uv),2) AS 收藏加购率 " & _
  6.                 "FROM [数据$] " & _
  7.                 "WHERE  (Format([日期],'Short Date'))<>'' " & _
  8.                 "GROUP BY 货号, 品类, 首卖日期 " & _
  9.                 "PIVOT Format([日期],'Short Date');"
复制代码

TA的精华主题

TA的得分主题

发表于 2019-11-11 11:28 | 显示全部楼层
本帖最后由 opiona 于 2019-11-11 11:33 编辑
  1.     Set SH2 = Worksheets("报表")
  2.    
  3.     StrSQL = "TRANSFORM SUM(销量)"
  4.     StrSQL = StrSQL & " SELECT 货号,品类,首卖日期,SUM(销量) AS 周销量"
  5.     StrSQL = StrSQL & ",NULL AS 图片"
  6.     StrSQL = StrSQL & " FROM ("
  7.    
  8.     StrSQL = StrSQL & " SELECT 货号,品类,首卖日期,日期,SUM(销量) AS 销量"
  9.     StrSQL = StrSQL & " FROM [数据$]"
  10.     StrSQL = StrSQL & " WHERE NOT 日期 IS NULL"    '//去掉了<>
  11.     StrSQL = StrSQL & " GROUP BY 货号,品类,首卖日期,日期"
  12.    
  13.     StrSQL = StrSQL & ") WHERE 销量>0"   '//合计后,去掉销量=0的,其实可以直接:只要销售>0的
  14.     StrSQL = StrSQL & " GROUP BY 货号,品类,首卖日期"
  15.     StrSQL = StrSQL & " PIVOT 日期 "
  16.    
  17.     Str_coon = "HDR=yes';Data Source =" & ThisWorkbook.FullName     '//OFFICE2003,2007 通用
  18.     SQLARR = GET_SQL_To_Arr(StrSQL, Str_coon, True)
  19.    
  20.     SH2.Range("A1:Z65536").ClearContents
  21.     SH2.Range("A1").Resize(UBound(SQLARR, 1) + 1, UBound(SQLARR, 2) + 1) = SQLARR
  22.    
  23.     Rem 重新排序
  24.     StrSQL = ""
  25.     StrSQL = StrSQL & " SELECT * FROM [" & SH2.Name & "$]"
  26.     StrSQL = StrSQL & " ORDER BY 周销量 DESC"
  27.    
  28.     SQLARR = GET_SQL_To_Arr(StrSQL, Str_coon, True)
  29.    
  30.     SH2.Range("A1:Z65536").ClearContents
  31.     SH2.Range("A1").Resize(UBound(SQLARR, 1) + 1, UBound(SQLARR, 2) + 1) = SQLARR
复制代码

TA的精华主题

TA的得分主题

发表于 2019-11-11 11:31 | 显示全部楼层
QQ14885553.rar (373.93 KB, 下载次数: 33)

QQ14885553.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-11 13:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

谢谢老师,您的代码实在太精简,厉害。想对周销量进行排序,在groupby 下一句加上这个句话,运行不了,"order BY 周销量 desc " & _;
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-18 09:57 , Processed in 0.051336 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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