ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何把不同表数据相乘并相加最后汇总的另一张表内--急需

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-2-22 23:11 | 显示全部楼层 |阅读模式
     大家好,我正在学习ACCESS,目前是一个新手。正在学习access,想用access做个小工具便于工作。access里前3个文件是单位产成品的组成清单,里面都由字母T,G,U打头的零件组成。每个字母T,G,U开头零件的分类后又单独做了三个表,里面是这些零件的的作业时间,想用每个零件的数量乘以对应的作业时间并汇总算出前面三张表分别以T,G,U字母开头得总的作业时间,并把汇总的数字输入到成品件号查询里面。但是不知道该怎么下手,看看是否还需要创建新表或者使用其他公式啊。
     比如0004776H-前段 这张表里面有14个G开头的零件名,43个T开头的零件,还有2个U开头的零件,想把这些零件对应的数量乘以另外3个零件表中的每个零件的作业时间,就能得出14个G,43个T还有2个U的分别作业时间,最后汇总就能求出14个G开头零件的总作业时间,以此类推,最后能把这3类零件的总时间输入到另外的一张查询表中。实际上单位的零件表有2000多个,也不知道该用什么方式。用excel的话,数据量太大了,所以想用数据库的方式,让电脑自动运算,随后只返回每个零件的3个数值(G,T,U的总作业工时)就可以了。要是能在查询表中编辑宏代码就最好了,还望各位高手指点,谢谢。

     

示例.jpg

前段工程统计011.rar

60.87 KB, 下载次数: 13

TA的精华主题

TA的得分主题

发表于 2014-2-23 10:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
SELECT DISTINCTROW 查询1.成品件号, Sum(查询1.需求数量) AS [需求数量 之 合计], Sum(查询1.端子作业时间合计) AS [端子作业时间合计 之 合计], Sum(查询1.防水栓作业时间合计) AS [防水栓作业时间合计 之 合计], Sum(查询1.热缩管作业时间合计) AS [热缩管作业时间合计 之 合计]
FROM 查询1
GROUP BY 查询1.成品件号
union
SELECT DISTINCTROW 查询1_01.成品件号, Sum(查询1_01.需求数量) AS [需求数量 之 合计], Sum(查询1_01.端子作业时间合计) AS [端子作业时间合计 之 合计], Sum(查询1_01.防水栓作业时间合计) AS [防水栓作业时间合计 之 合计], Sum(查询1_01.热缩管作业时间合计) AS [热缩管作业时间合计 之 合计]
FROM 查询1_01
GROUP BY 查询1_01.成品件号
union
SELECT DISTINCTROW 查询1_02.成品件号, Sum(查询1_02.需求数量) AS [需求数量 之 合计], Sum(查询1_02.端子作业时间合计) AS [端子作业时间合计 之 合计], Sum(查询1_02.防水栓作业时间合计) AS [防水栓作业时间合计 之 合计], Sum(查询1_02.热缩管作业时间合计) AS [热缩管作业时间合计 之 合计]
FROM 查询1_02
GROUP BY 查询1_02.成品件号;
(查询1)
SELECT [0004776H-前段].[成品件号], [0004776H-前段].[物品编码], [0004776H-前段].[物品名称], [0004776H-前段].[需求数量], 端子.端子作业时间, 防水栓.防水栓作业时间, 热缩管.热缩管作业时间, [端子作业时间]*[需求数量] AS 端子作业时间合计, [防水栓作业时间]*[需求数量] AS 防水栓作业时间合计, [热缩管作业时间]*[需求数量] AS 热缩管作业时间合计
FROM (([0004776H-前段] LEFT JOIN 端子 ON [0004776H-前段].物品编码 = 端子.物品编码) LEFT JOIN 防水栓 ON [0004776H-前段].物品编码 = 防水栓.物品编码) LEFT JOIN 热缩管 ON [0004776H-前段].物品编码 = 热缩管.物品编码;
(查询1_01)
SELECT [2010681112__01-前段].成品件号, [2010681112__01-前段].物品编码, [2010681112__01-前段].物品名称, [2010681112__01-前段].需求数量, 端子.端子作业时间, 防水栓.防水栓作业时间, 热缩管.热缩管作业时间, [端子作业时间]*[需求数量] AS 端子作业时间合计, [防水栓作业时间]*[需求数量] AS 防水栓作业时间合计, [热缩管作业时间]*[需求数量] AS 热缩管作业时间合计
FROM 防水栓 RIGHT JOIN (([2010681112__01-前段] LEFT JOIN 端子 ON [2010681112__01-前段].物品编码 = 端子.物品编码) LEFT JOIN 热缩管 ON [2010681112__01-前段].物品编码 = 热缩管.物品编码) ON 防水栓.物品编码 = [2010681112__01-前段].物品编码;

(查询1_02)

SELECT [2070671562__02-前段].成品件号, [2070671562__02-前段].物品编码, [2070671562__02-前段].物品名称, [2070671562__02-前段].需求数量, 端子.端子作业时间, 防水栓.防水栓作业时间, 热缩管.热缩管作业时间, [端子作业时间]*[需求数量] AS 端子作业时间合计, [防水栓作业时间]*[需求数量] AS 防水栓作业时间合计, [热缩管作业时间]*[需求数量] AS 热缩管作业时间合计
FROM 防水栓 RIGHT JOIN (([2070671562__02-前段] LEFT JOIN 端子 ON [2070671562__02-前段].物品编码 = 端子.物品编码) LEFT JOIN 热缩管 ON [2070671562__02-前段].物品编码 = 热缩管.物品编码) ON 防水栓.物品编码 = [2070671562__02-前段].物品编码;
(查询2)
SELECT DISTINCTROW 查询1.成品件号, Sum(查询1.需求数量) AS [需求数量 之 合计], Sum(查询1.端子作业时间合计) AS [端子作业时间合计 之 合计], Sum(查询1.防水栓作业时间合计) AS [防水栓作业时间合计 之 合计], Sum(查询1.热缩管作业时间合计) AS [热缩管作业时间合计 之 合计]
FROM 查询1
GROUP BY 查询1.成品件号;

(查询2_01)
SELECT DISTINCTROW 查询1_01.成品件号, Sum(查询1_01.需求数量) AS [需求数量 之 合计], Sum(查询1_01.端子作业时间合计) AS [端子作业时间合计 之 合计], Sum(查询1_01.防水栓作业时间合计) AS [防水栓作业时间合计 之 合计], Sum(查询1_01.热缩管作业时间合计) AS [热缩管作业时间合计 之 合计]
FROM 查询1_01
GROUP BY 查询1_01.成品件号;

(查询2_02)
SELECT DISTINCTROW 查询1_02.成品件号, Sum(查询1_02.需求数量) AS [需求数量 之 合计], Sum(查询1_02.端子作业时间合计) AS [端子作业时间合计 之 合计], Sum(查询1_02.防水栓作业时间合计) AS [防水栓作业时间合计 之 合计], Sum(查询1_02.热缩管作业时间合计) AS [热缩管作业时间合计 之 合计]
FROM 查询1_02
GROUP BY 查询1_02.成品件号;

前段工程统计011.rar

63.46 KB, 下载次数: 20

TA的精华主题

TA的得分主题

发表于 2014-2-23 10:59 | 显示全部楼层
写成这么多个查询,主要是为了楼主了解如何生成最终结果。实际可以做成一个查询。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-23 17:33 | 显示全部楼层
zez 发表于 2014-2-23 10:59
写成这么多个查询,主要是为了楼主了解如何生成最终结果。实际可以做成一个查询。

谢谢您,您写了这么多,我要慢慢研究一下了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-23 22:13 | 显示全部楼层
zez 发表于 2014-2-23 10:59
写成这么多个查询,主要是为了楼主了解如何生成最终结果。实际可以做成一个查询。

真的很感谢您,您做的查询2,查询2_01,查询2_02得到的结果正是我想要的。其实单位里的表有2000多个,我要是创建2000多个查询就太累了,请问能不能把这3个查询放在一起呢,用一个文件就能都显示出来呢,还望您帮忙,谢谢。

TA的精华主题

TA的得分主题

发表于 2014-2-24 07:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wangsj_2001 发表于 2014-2-23 22:13
真的很感谢您,您做的查询2,查询2_01,查询2_02得到的结果正是我想要的。其实单位里的表有2000多个,我要 ...

SELECT [0004776H-前段].成品件号, Sum([0004776H-前段].需求数量) AS 需求数量之合计, Sum([端子作业时间]*[需求数量]) AS 端子作业时间合计, Sum([防水栓作业时间]*[需求数量]) AS 防水栓作业时间合计, Sum([热缩管作业时间]*[需求数量]) AS 热缩管作业时间合计
FROM (([0004776H-前段] LEFT JOIN 端子 ON [0004776H-前段].物品编码 = 端子.物品编码) LEFT JOIN 防水栓 ON [0004776H-前段].物品编码 = 防水栓.物品编码) LEFT JOIN 热缩管 ON [0004776H-前段].物品编码 = 热缩管.物品编码
GROUP BY [0004776H-前段].成品件号
UNION
SELECT [2010681112__01-前段].成品件号, Sum([2010681112__01-前段].需求数量) AS 需求数量之合计, Sum([端子作业时间]*[需求数量]) AS 端子作业时间合计, Sum([防水栓作业时间]*[需求数量]) AS 防水栓作业时间合计, Sum([热缩管作业时间]*[需求数量]) AS 热缩管作业时间合计
FROM (([2010681112__01-前段] LEFT JOIN 端子 ON [2010681112__01-前段].物品编码 = 端子.物品编码) LEFT JOIN 防水栓 ON [2010681112__01-前段].物品编码 = 防水栓.物品编码) LEFT JOIN 热缩管 ON [2010681112__01-前段].物品编码 = 热缩管.物品编码
GROUP BY [2010681112__01-前段].成品件号
UNION
SELECT [2070671562__02-前段].成品件号, Sum([2070671562__02-前段].需求数量) AS 需求数量之合计, Sum([端子作业时间]*[需求数量]) AS 端子作业时间合计, Sum([防水栓作业时间]*[需求数量]) AS 防水栓作业时间合计, Sum([热缩管作业时间]*[需求数量]) AS 热缩管作业时间合计
FROM (([2070671562__02-前段] LEFT JOIN 端子 ON [2070671562__02-前段].物品编码 = 端子.物品编码) LEFT JOIN 防水栓 ON [2070671562__02-前段].物品编码 = 防水栓.物品编码) LEFT JOIN 热缩管 ON [2070671562__02-前段].物品编码 = 热缩管.物品编码
GROUP BY [2070671562__02-前段].成品件号

TA的精华主题

TA的得分主题

发表于 2014-2-24 07:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
先做出查询:
SELECT [0004776H-前段].成品件号, Sum([0004776H-前段].需求数量) AS 需求数量之合计, Sum([端子作业时间]*[需求数量]) AS 端子作业时间合计, Sum([防水栓作业时间]*[需求数量]) AS 防水栓作业时间合计, Sum([热缩管作业时间]*[需求数量]) AS 热缩管作业时间合计
FROM (([0004776H-前段] LEFT JOIN 端子 ON [0004776H-前段].物品编码 = 端子.物品编码) LEFT JOIN 防水栓 ON [0004776H-前段].物品编码 = 防水栓.物品编码) LEFT JOIN 热缩管 ON [0004776H-前段].物品编码 = 热缩管.物品编码
GROUP BY [0004776H-前段].成品件号
然后用替换的方法就可以做出其他表的查询,然后用“UNION"把查询联合起来。
aa.gif

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-24 09:01 | 显示全部楼层
zez 发表于 2014-2-24 07:55
先做出查询:
SELECT [0004776H-前段].成品件号, Sum([0004776H-前段].需求数量) AS 需求数量之合计, Sum( ...

谢谢您,您太厉害了,您做的查询3都没有使用界面设计方式,而是直接使用语句的方式,我还达不到您的高度。还有查询3的图标您使用了双环的图案,您是怎么做到的啊,还请指点,谢谢。

TA的精华主题

TA的得分主题

发表于 2014-2-24 10:38 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-24 15:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 wangsj_2001 于 2014-2-24 16:18 编辑
zez 发表于 2014-2-24 10:38
联合查询,(UNION)


研究了一下午,也没有达到您做的附件里的查询3的联合查询样式,你是不是直接在查询设计3中写入的语句啊,因为右键点击查询3的设计视图的时候,什么都没有。在access中直接写SQL语句,我目前还没有这个能力。要是不用直接写语句,而是通过界面设计就可以的话,还麻烦您有时间帮忙做一个屏幕录影吧,我想学习一下您的思路,谢谢您了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 12:48 , Processed in 0.033761 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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