设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 4399|回复: 28
打印 上一主题 下一主题

[表] 如何用SQL或其它方法更新表

[复制链接]
跳转到指定楼层
1#
发表于 2012-4-7 20:49:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 简 于 2012-4-7 20:52 编辑

我希望把定额表中定额更新在AA表中相对应的品号的定额字段中。

特别强调的是,

同一个产品,在同一台机床,同一天里,如果班次中有两个中班,那么该中班次的定额就取一半,否则就是全额。  
比如,本来A042的定额是2700,它在3月6号 这天,在29号机床上有两个中班,所以中班的定额就为2700/2=1350,而白班和夜班就是2700。  

像B092产品,它在3月8号这天,在21号机床 上只有一个中班,所以它白、中、夜的定额都是1800。

最后的结果如图所示。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-4-7 20:59:03 | 只看该作者
在定额控件的控件来源中写:
=Dlookup("定额","定额表","条件表达式")/Dcount("*","子窗体数据源的表名称","机床=" & [机床] & " and 日期=#" & [日期] & "# and 班次='" [班次] & "'")
3#
 楼主| 发表于 2012-4-7 21:19:43 | 只看该作者
todaynew 发表于 2012-4-7 20:59
在定额控件的控件来源中写:
=Dlookup("定额","定额表","条件表达式")/Dcount("*","子窗体数据源的表名称" ...

我照着写了来,不对呢,AA表中的定额字段值都变成(定额表.定额)/2,而事实上我要求的是,有两个中班的,定额字段才为定额表.定额/2,不知错在哪里了。
4#
发表于 2012-4-7 22:03:09 | 只看该作者
简 发表于 2012-4-7 21:19
我照着写了来,不对呢,AA表中的定额字段值都变成(定额表.定额)/2,而事实上我要求的是,有两个中班的,定 ...

鬼打架,加个班组的表达式不就完事了嘛。
5#
 楼主| 发表于 2012-4-15 19:28:17 | 只看该作者
todaynew 发表于 2012-4-7 22:03
鬼打架,加个班组的表达式不就完事了嘛。

我想再问一下,我想把AA表中相同生产日期,相同产品代号,相同机床,相同班次的记录合为一条记录,完成数量为要合成的记录的完成数量之和,合成后的记录另存为BB表。

请问SQL代码该怎么写呢。
6#
发表于 2012-4-15 20:03:14 | 只看该作者
简 发表于 2012-4-15 19:28
我想再问一下,我想把AA表中相同生产日期,相同产品代号,相同机床,相同班次的记录合为一条记录,完成数 ...

具体语句不写,方法可以如下:
1、在查询设计视图中先按要求建立一个分组查询,生产日期、机床、班次分组,完成数量合计;
2、查看分组查询是否为所需结果,如果不是则进行相应调整;
3、在分组查询的设计视图中,建立生成查询,生成的表名为BB。如果已经建立了BB则建立追加查询,将分组查询的结果追加到BB表中。
4、将设计视图转入SQL设计视图,拷贝生成查询的SQL语句(或者是追加查询),将其粘贴到VB的代码中去。
7#
发表于 2012-4-15 21:18:57 | 只看该作者
查询1:
SELECT AA.生产日期, AA.班组, AA.班次, AA.机床, Count(AA.ID) AS ID之计数
FROM AA
GROUP BY AA.生产日期, AA.班组, AA.班次, AA.机床
8#
发表于 2012-4-15 21:19:20 | 只看该作者
查询2:
SELECT AA.ID, AA.生产日期, AA.产品代号, AA.刀数, 定额表.定额, AA.班组, AA.班次, AA.完成数量, AA.机床
FROM AA INNER JOIN 定额表 ON AA.产品代号 = 定额表.产品代号;
9#
发表于 2012-4-15 21:19:53 | 只看该作者
本帖最后由 aslxt 于 2012-4-15 21:20 编辑

查询3(结果):
SELECT 查询2.ID, 查询2.生产日期, 查询2.产品代号, 查询2.刀数, [查询2].[定额]/[查询1].[ID之计数] AS 定额值, 查询2.班组, 查询2.班次, 查询2.完成数量, 查询2.机床
FROM 查询2 INNER JOIN 查询1 ON (查询2.机床 = 查询1.机床) AND (查询2.班次 = 查询1.班次) AND (查询2.班组 = 查询1.班组) AND (查询2.生产日期 = 查询1.生产日期)
ORDER BY 查询2.ID;
10#
发表于 2012-4-15 21:22:32 | 只看该作者

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-15 04:24 , Processed in 0.110140 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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