ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

sql处理数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-6-4 18:11 | 显示全部楼层 |阅读模式
将数据源通过SQL处理成需要的形式

数据处理.rar

6.29 KB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2017-6-4 18:40 | 显示全部楼层
转置后链接

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-9 15:01 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-6-9 21:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个用sql连接后通过透视表来实现你想要的结果会好点吧!
看看附件.. 数据处理.rar (11.06 KB, 下载次数: 1)

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-10 10:16 | 显示全部楼层
以下代码为什么处理不了
Select a.个人编号,a.姓名,a.缴费基数,a.企业基本养老保险,a.失业保险,a.城镇职工基本医疗保险,a.大病医疗救助,a.工伤保险,a.生育保险,b.企业基本养老保险,b.失业保险,b.城镇职工基本医疗保险,b.大病医疗救助,b.工伤保险,b.生育保险
From (TRANSFORM SUM(单位缴费金额) SELECT 个人编号,姓名,缴费基数 FROM [数据源$] GROUP BY 个人编号,姓名,缴费基数 PIVOT 险种类型)a, (TRANSFORM SUM(个人缴费金额) SELECT 个人编号,姓名,缴费基数 FROM [数据源$] GROUP BY 个人编号,姓名,缴费基数 PIVOT 险种类型)b
where a.个人编号=b.个人编号

TA的精华主题

TA的得分主题

发表于 2017-6-10 13:25 | 显示全部楼层
  1. Sub cdsr()
  2.     Dim cnn As Object, rs As Object, i&, SQL$, rs1 As Object
  3.     Set cnn = CreateObject("ADODB.Connection")
  4.     cnn.Open "Provider = Microsoft.ace.Oledb.12.0;Extended Properties =Excel 12.0;Data Source =" & ThisWorkbook.FullName
  5.     SQL = "transform sum(单位缴费金额) select 个人编号,姓名,缴费基数,sum(单位缴费金额) as 企业合计  from [数据源$] group by 个人编号,姓名,缴费基数 pivot 险种类型"
  6.     SQL1 = "transform sum(个人缴费金额) select sum(个人缴费金额) as 个人合计  from [数据源$] group by 个人编号,姓名,缴费基数 pivot 险种类型"
  7.     Set rs = cnn.Execute(SQL)
  8.     Set rs1 = cnn.Execute(SQL1)
  9.     With Sheets("输出结果")
  10.         .Range("a20:q1000").ClearContents
  11.         For i = 1 To rs.Fields.Count
  12.             .Cells(19, i) = rs.Fields(i - 1).Name
  13.         Next
  14.         .Range("a20").CopyFromRecordset rs
  15.         
  16.         For i = 1 To rs1.Fields.Count
  17.             .Cells(19, i + 10) = rs1.Fields(i - 1).Name
  18.         Next
  19.         .Range("k20").CopyFromRecordset rs1
  20.     End With
  21.     rs.Close: rs1.Close
  22.     cnn.Close
  23.     Set rs = Nothing: Set rs1 = Nothing
  24.     Set cnn = Nothing
  25. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2017-6-10 13:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
数据处理.rar (13.41 KB, 下载次数: 2)

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-6-18 00:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
有没有简短一点的查询代码呢,下面这段实在太长了

select a.个人编号,a.姓名,a.缴费基数,a.单位缴费金额 as 企业养老,b.单位缴费金额 as 企业失业,c.单位缴费金额 as 企业医疗,d.单位缴费金额  as 企业大病,e.单位缴费金额 as 企业工伤,f.单位缴费金额 as 企业生育, a.个人缴费金额  as 个人养老,b.个人缴费金额 as 个人失业,c.个人缴费金额 as 个人医疗,d.个人缴费金额 as 个人大病,e.个人缴费金额 as 个人工伤,f.个人缴费金额 as 个人生育 from (select * from [数据源$a:i] where 险种类型='企业基本养老保险')a, (select * from [数据源$a:i] where 险种类型='失业保险')b, (select * from [数据源$a:i] where 险种类型='城镇职工基本医疗保险')c, (select * from [数据源$a:i] where 险种类型='大病医疗救助')d, (select * from [数据源$a:i] where 险种类型='工伤保险')e, (select * from [数据源$a:i] where 险种类型='生育保险')f where a.个人编号=b.个人编号 and b.个人编号=c.个人编号 and c.个人编号=d.个人编号 and d.个人编号=e.个人编号 and e.个人编号=f.个人编号
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-12-24 03:20 , Processed in 0.046980 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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