设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3032|回复: 6
打印 上一主题 下一主题

[查询] 如何计算子表的结果赋值给主表?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2016-1-4 13:06:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hshzhq 于 2016-1-4 13:26 编辑

例如,主表为:
编号                      客户                A货数        B货数      总价
160101001           李某某                     
160101002           张某某      
160101003           刘某某
160102001           朱某某

子表为:
编号                        货物            数量           单价              
160101001             A1               5                109
160101001             A2               2                96
160101001             A3               4                 112
160101001             B1               2                 98
160101001             B2               6                 15
160101002             A1               3                109
160101002             A2               5                96
160101002             A3               3                 112
160101002             B1               4                 98
160101002             B2               2                 15
160101003             A1               2                109
160101003             A2               2                96
160101003             A3               1                 112
160101003             B1               4                 98
160101003             B2               5                 15
160102001             A1               7                109
160102001             A2               3                96
160102001             A3               1                 112
160102001             B1               4                 98
160102001             B2               2                 15

如上,现在想计算子表里面的各主键对于的A货数量和B货数量,并且计算各主键对于的总价补充主表的对应的位置,请问怎么写代码?可以使用代码或者表达式都可以。(A货包括A开头的A1、A2、A3等,B货包括B开头的B1、B2等)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
推荐
发表于 2016-1-11 17:12:53 | 只看该作者
hshzhq 发表于 2016-1-5 16:29
你好,能不能直接在主表的A货数和B货数的数据类型里面添加select语句,自动计算相同主表主键的对应的子表 ...

删除主表后面三个字段不就连问题都不存在了嘛。不要想怎么解决问题,要想怎么消灭问题嘛。
回复 支持 1 反对 0

使用道具 举报

2#
发表于 2016-1-4 14:02:39 | 只看该作者
本帖最后由 todaynew 于 2016-1-4 14:16 编辑

select a.编号,a.客户,b.A货数,c.B货数,b.A金额+c.B金额 as 总价
from 主表 as a
inner join
(select 编号,sum(数量) as A货数,sum(数量*单价) as A金额 from 子表 where Left(货物,1)="A" group by 编号) as b
on b.编号=a.编号
inner join
(select 编号,sum(数量) as B货数,sum(数量*单价) as B金额 from 子表 where Left(货物,1)="B" group by 编号) as c
on c.编号=a.编号

点击这里给我发消息

3#
 楼主| 发表于 2016-1-4 14:37:27 | 只看该作者
todaynew 发表于 2016-1-4 14:02
select a.编号,a.客户,b.A货数,c.B货数,b.A金额+c.B金额 as 总价
from 主表 as a
inner join

这代码是用在宏生成器还是代码生成器里面呢?

点击这里给我发消息

4#
 楼主| 发表于 2016-1-4 14:51:06 | 只看该作者
知道哪里添加了,创建,选查询设计,这是会出现“选择表”,这是图形方式设计查询,简单的查询在这里就可以完成。
关闭这个“选择表”,左上角有选择设计视图的按钮,选择SQL,进入SQL设计模式。

点击这里给我发消息

5#
 楼主| 发表于 2016-1-5 16:29:00 | 只看该作者
todaynew 发表于 2016-1-4 14:02
select a.编号,a.客户,b.A货数,c.B货数,b.A金额+c.B金额 as 总价
from 主表 as a
inner join

你好,能不能直接在主表的A货数和B货数的数据类型里面添加select语句,自动计算相同主表主键的对应的子表中某列对应的的值的集合,关系挺复杂
7#
发表于 2016-1-24 12:23:28 | 只看该作者
如果要自动,就不要用表,用视图(保存下来的查询)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-11 02:55 , Processed in 0.117699 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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