ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何将三个表的数据形成一个数据透视表

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-1-4 14:28 | 显示全部楼层 |阅读模式
想将三个表(09耗时表、基本表、计划费用表)的数据形成一个sheet1样式的数据透视表。请高手指教一下。谢谢!

TEST.rar

7.06 KB, 下载次数: 131

TA的精华主题

TA的得分主题

发表于 2010-1-4 14:56 | 显示全部楼层
SELECT [09耗时表$].实际开始, [09耗时表$].开发单位, [09耗时表$].计划代号, [09耗时表$].计划名称, [09耗时表$].实际结束, [09耗时表$].计划状态, Sum([基本表$].累计总工时) AS 累计总工时, Sum([计划费用表$].差旅) AS  差旅, Sum([计划费用表$].物料) AS 物料, Sum([计划费用表$].测试) AS 测试, Sum([计划费用表$].其他) AS 其他, Sum([计划费用表$].合计) AS 合计
FROM [09耗时表$], [基本表$], [计划费用表$]
WHERE [09耗时表$].计划名称 = [计划费用表$].计划名称 AND [计划费用表$].计划名称 = [基本表$].计划名称
GROUP BY [09耗时表$].实际开始, [09耗时表$].开发单位, [09耗时表$].计划代号, [09耗时表$].计划名称, [09耗时表$].实际结束, [09耗时表$].计划状态

TA的精华主题

TA的得分主题

发表于 2010-1-4 14:56 | 显示全部楼层
这道题具有一定的挑战性,可惜我不会!
希望高手能出来答复。

TA的精华主题

TA的得分主题

发表于 2010-1-4 14:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. select * FROM ['09耗时表$'] A,[基本表$] B,[计划费用表$] C WHERE A.计划代号=B.计划代号 AND A.计划代号=C.计划代号
复制代码
供参考.

TEST.rar

9.04 KB, 下载次数: 108

TA的精华主题

TA的得分主题

发表于 2010-1-4 15:03 | 显示全部楼层
原帖由 wuxiang_123 于 2010-1-4 14:56 发表
select * FROM ['09耗时表$'] A,[基本表$] B,[计划费用表$] C WHERE A.计划代号=B.计划代号 AND A.计划代号=C.计划代号供参考.



select * FROM ['09耗时表$'] A,[基本表$] B,[计划费用表$] C WHERE A.计划代号=B.计划代号 AND A.计划代号=C.计划代号

wuxiang给我解释一下啊!?
A、B、C、什么意思啊!?

TA的精华主题

TA的得分主题

发表于 2010-1-4 15:03 | 显示全部楼层

回复 4楼 wuxiang_123 的帖子

格式又怎么理解 !???

TA的精华主题

TA的得分主题

发表于 2010-1-4 15:07 | 显示全部楼层
结果如附件,请楼主检验,正确的附件: TEST.rar (16.6 KB, 下载次数: 43)
更简洁的写法:

  1. select
  2. distinct *
  3. from
  4. (
  5. select
  6.   a.*,
  7.   b.*,
  8.   c.*
  9. from
  10.   (
  11.   select
  12.    计划代号,
  13.    计划名称,
  14.    实际开始,
  15.    实际结束,
  16.    计划状态,
  17.    开发单位,
  18.    计划负责人,
  19.    角色,
  20.    sum(实际工时) as 实际工时
  21.   from
  22.    [09耗时表$]
  23.   group by
  24.    计划代号,
  25.    计划名称,
  26.    实际开始,
  27.    实际结束,
  28.    计划状态,
  29.    开发单位,
  30.    计划负责人,
  31.    角色
  32.   )a,
  33.   [基本表$]b,
  34.   [计划费用表$]c
  35. where
  36.   a.计划代号=b.计划代号
  37. and
  38. a.计划代号=c.计划代号
  39. )
复制代码
原写法:

  1. select
  2.   c.*,
  3.   d.*
  4. from
  5.   (
  6.   select
  7.   a.*,
  8.   b.实际开始,
  9.   b.实际结束,
  10.   b.计划状态,
  11.   b.开发单位,
  12.   b.计划负责人,
  13.   b.累计总工时
  14.    from
  15.   (
  16.   select
  17.   计划代号,
  18.   计划名称,
  19.   实际开始,
  20.   实际结束,
  21.   计划状态,
  22.   开发单位,
  23.   计划负责人,
  24.   角色,
  25.   sum(实际工时) as 实际工时
  26.   from
  27.   [09耗时表$]
  28.   group by  
  29.   计划代号,
  30.   计划名称,
  31.   实际开始,
  32.   实际结束,
  33.   计划状态,
  34.   开发单位,
  35.   计划负责人,
  36.   角色
  37.   )a
  38.   left join  
  39.   [基本表$]b
  40.   on
  41.   a.计划代号=b.计划代号
  42.   )c
  43. left join
  44.   [计划费用表$]d
  45. on
  46.   c.计划代号=d.计划代号

复制代码
错误的附件:

[ 本帖最后由 masterexcel 于 2010-1-4 16:04 编辑 ]

TEST.rar

16.79 KB, 下载次数: 40

TA的精华主题

TA的得分主题

发表于 2010-1-4 15:10 | 显示全部楼层
4楼的,是不是用SQL语句呀!
解题方法不错,赞一下!

TA的精华主题

TA的得分主题

发表于 2010-1-4 15:14 | 显示全部楼层
我觉得4楼的代码不对,
【基本表】中累计总工时 总数分别是24884,9978,26635,这是汇总后的数据
如果用4楼的语句做出来,这样累计总工时就扩大了好几倍,应该是【09耗时表】 汇总后再合并,这样数据总数才对

TA的精华主题

TA的得分主题

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

回复 5楼 亡者天下 的帖子

A代表['09耗时表$']
B代表[基本表$]
C代表[计划费用表$]
这样简化处理where条件写法
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-28 08:24 , Processed in 0.056888 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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