Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

休假统计(字段天数相减)

新手  发表于:2008-04-18 10:17:01  
复制

表1 :基本信息(jbxx)
     id(人员编号)  name (姓名) xsxjjts(享受休假天数) 

表2 :休假信息(xjxx)
     xjid(休假编号)  Id(人员编号) xjts(本次休假天数) syts(剩余天数)

怎么实现在syts(剩余天数)字段的计算结果=xsxjts(享受休假天数)-xjts(本次休假天数)

       用表达式还是查询。

 

Top
十段 发表于:2008-04-18 12:12:41

在查询中解决的方法:

SELECT 表2.Id(人员编号), 表1.[name (姓名)], 表1.[xsxjjts(享受休假天数)], 表2.[xjts(本次休假天数)], [xsxjjts(享受休假天数)]-[xjts(本次休假天数)] AS [syts(剩余天数)]
FROM 表1 INNER JOIN 表2 ON 表1.id(人员编号) = 表2.Id(人员编号);
我已测试过了,能用,你试试看



新手 发表于:2008-04-18 13:03:07
谢谢哦!

pc高手 发表于:2008-04-18 13:17:37


SELECT JBXX.ID, JBXX.NAME, JBXX.XSXJTS, XJXX.XJTS, [XSXJTS]-[XJTS] AS SYTS
FROM JBXX INNER JOIN XJXX ON JBXX.ID = XJXX.ID;

上述的方法(利用查询 SELECT ) 虽然简单,实际上并没有解决问题。
表2 syts 字段里面并没有更新成新的数字。
建议改一下:
UPDATE JBXX INNER JOIN XJXX ON JBXX.ID = XJXX.ID SET XJXX.SYTS = [XSXJTS]-[XJTS];

即使是这样, 与真正的使用程序还是有一定的距离。 上述仅仅是一个句子例子。



新手 发表于:2008-04-18 14:09:19

谢谢哦

 

UPDATE JBXX INNER JOIN XJXX ON JBXX.ID = XJXX.ID SET XJXX.SYTS = [XSXJTS]-[XJTS];

这句应该在哪写,在条件了里加,还是在哪?



pc高手 发表于:2008-04-18 14:44:27

这个 update 句子本身就是一个查询, 用查询也行, 用如下也行:

docmd.runsql "uodate......"

 



新手 发表于:2008-04-18 15:28:46

如果“基本信息”  jbxx                   

                     

                 人员编号ryid      姓名name     享受休假天数xsxjts

                      1001              张三             15

 

休假表 xjxx          

                  休假编号       人员编号      休假天数xjts     剩余天数syts

                       1            1001            5 

                       2            1001            7

 

怎么实现,那剩余天数应为  人员编号ryid      姓名name     享受休假天数xsxjts    休假天数xjts    剩余天数syts

                            1001             张三            15                    12            3

 

按照一楼说法结果是    人员编号ryid      姓名name     享受休假天数xsxjts    休假天数xjts    剩余天数syts

                         1001             张三           15                   5               10

                          1001             张三           15                  7                8



pc高手 发表于:2008-04-18 15:59:54

那么简单的问题, 源代码都给你了, 还需要问吗?

如果你只想看结果, 1 楼的句子就可以。

直接点击那个查询, 就出结果了。

如果想用窗体的命令按钮,  就用 DOCMD.RUNSQL "....."



新手 发表于:2008-04-21 08:09:49
谢谢。新手不要见笑。

新手 发表于:2008-04-21 08:27:53

我已经试过,好像不能实现

syts=syts-xjts(表中人员编号相同每一条记录)

好像应该是一个循环语句



总记录:9篇  页次:1/1 9 1 :