ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 关于合并表格,实在找不到思路了(已解决,感谢Simon_zhu老师的倾力相助)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-6-18 13:24 | 显示全部楼层 |阅读模式
还是、又是关于合并表格,生成新表,实在找不到思路,又来麻烦老师们

[ 本帖最后由 onthetrip 于 2010-7-21 19:04 编辑 ]

合并报表.rar

3.94 KB, 下载次数: 35

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-6-18 13:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不好意思,要求描述中有一点错误,第五条应为:5、过程表去掉项目名称,项目规格,得到过程表四
附件已更正这个错误

[ 本帖最后由 onthetrip 于 2010-6-18 13:53 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-6-18 18:59 | 显示全部楼层
绞尽脑汁,已勉强写到这一步:
  1. "select * from" _
  2. & "(select aa.项目名称,aa.项目规格, aa.单位,aa.数量  from [sheet1$] aa left join " _
  3. & "[sheet2$] bb on aa.项目名称&aa.项目规格=bb.项目名称&bb.项目规格 where" _
  4. & " bb.项目名称 is null )  union all" _
  5. & "(select bb.材料名称,bb.材料规格,bb.材料单位,bb.数量*aa.数量 from" _
  6. & "[sheet1$] aa inner join [sheet2$] bb on aa.项目名称&aa.项目规格=bb.项目名称&bb.项目规格)"
复制代码
但怎么都无法把以上代码过渡到下面的语句,提示联合查询语法错误:
  1. "select 项目名称,项目规格,单位,sum(数量) from" _
  2. & "(select aa.项目名称,aa.项目规格, aa.单位,aa.数量  from [sheet1$] aa left join " _
  3. & "[sheet2$] bb on aa.项目名称&aa.项目规格=bb.项目名称&bb.项目规格 where" _
  4. & " bb.项目名称 is null )  union all" _
  5. & "(select bb.材料名称,bb.材料规格,bb.材料单位,bb.数量*aa.数量 from" _
  6. & "[sheet1$] aa inner join [sheet2$] bb on aa.项目名称&aa.项目规格=bb.项目名称&bb.项目规格)" _
  7. & "group by 项目名称,项目规格,单位"
复制代码
请各位老师关注一下,谢谢了

[ 本帖最后由 onthetrip 于 2010-6-18 19:02 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-6-18 20:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
自己顶一下

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-6-19 11:02 | 显示全部楼层
继续等待中。。。。。。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-6-19 16:58 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-6-19 17:12 | 显示全部楼层
我觉得你是不是把一个大问题细化一下,分成几个小问题,先提一个,解决了,再提下一个,会比较好。一个小问题容易说清楚些,一上来,就很复杂,别人用比较小的时间是不大容容易搞明白的。
先从自己身上找一下原因,比一味的顶帖要好。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-6-19 18:05 | 显示全部楼层

回复 7楼 jiminyanyan 的帖子

呵呵,谢谢你的关注和建议
这些问题如果用分解的方式(像我附件那样的分解步骤)来一个一个提问,相对来说可能确实比较容易得到回复。我个人认为这个问题并不是各个分解步骤的简单相加,因此就算分步能得到解决,以我的水平到最后还是解决不了整体。
我三楼的代码就是各个小步骤的逐渐组合,可到最后还是没法解决整体的问题。

[ 本帖最后由 onthetrip 于 2010-6-19 18:07 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-7-21 16:51 | 显示全部楼层
原帖由 onthetrip 于 2010-6-18 13:24 发表
还是、又是关于合并表格,生成新表,实在找不到思路,又来麻烦老师们


这种最搞脑子了,条件多了,脑子总会象浆糊一样,糊里糊涂的,呵呵。

看看是不是这种效果?
  1. Sub My_test()
  2.     Dim Sql$, Sql1$, Sql2$, Sql3$, Sql4$
  3.     Dim Conn As Object, rst As Object
  4.     Set Conn = CreateObject("Adodb.Connection")
  5.         Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;hdr=yes;imex=1;';Data Source=" & ThisWorkbook.FullName
  6.             Sheet3.[a2:f65536].ClearContents
  7.             
  8.             Sql = "Select 项目名称,项目规格,Sum(数量) as 数量 from [Sheet1$] Group by 项目名称,项目规格"
  9.             
  10.             Sql1 = "Select distinct aa.项目名称,aa.项目规格,aa.材料名称,aa.材料规格,aa.材料单位, aa.数量 from [sheet2$] aa left join [sheet1$] bb on aa.项目名称=bb.项目名称 and aa.项目规格=bb.项目规格 Where aa.项目名称 is not null and bb.项目名称 is not null"
  11.             
  12.             Sql2 = "Select A.材料名称,A.材料规格,A.材料单位,A.数量*B.数量 as 数量 from (" & Sql1 & ") as A left join (" & Sql & ") as B on A.项目名称=B.项目名称 and A.项目规格=B.项目规格"
  13.             
  14.             Sql3 = "Select aa.项目名称,aa.项目规格, aa.单位,aa.数量  from [sheet1$] aa left join [sheet2$] bb on aa.项目名称=bb.项目名称 And aa.项目规格=bb.项目规格  Where bb.项目名称 is null And bb.项目名称 is null"
  15.                                 
  16.             Sql4 = "Select 材料名称,材料规格,材料单位,sum(数量) from (" & Sql2 & " Union all " & Sql3 & ") Group by 材料名称,材料规格,材料单位"
  17.             
  18.             Sheet3.Range("a2").CopyFromRecordset Conn.Execute(Sql4)
  19.         
  20.         Conn.Close
  21.     Set Conn
复制代码
没有连在一起写,便于让你看清代码。

详见附件
供参考

[ 本帖最后由 Simon_Zhu 于 2010-7-21 16:59 编辑 ]

合并报表 new.rar

12.14 KB, 下载次数: 49

TA的精华主题

TA的得分主题

发表于 2010-7-21 18:03 | 显示全部楼层
尽量使用
A.项目名称=B.项目名称 and A.项目规格=B.项目规格
这样的格式,
尽量不要使用
A.项目名称&A.项目规格=B.项目名称&B.项目规格
这种格式

会影响Sql查询速度。
供参考
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 03:53 , Processed in 0.043710 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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