标题:求教:数据库操作问题
只看楼主
jonny_pan
Rank: 1
来 自:吉林省通化市
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-4
结帖率:50%
已结贴  问题点数:10 回复次数:8 
求教:数据库操作问题
A库:设备编号 D01日 D02日......D31 月合计 字段,B库:设备编号 使用日期 使用情况 备注 .
B库为每日生成的设备使用记录表,每日得将使用情况添加到A库中,
问题:如何使A库中设备编号对应B库中设备编号的记录中对应日期字段中的数据改写成1
程序命令如何编写
D01日等为数值型  使用日期为日期型 其它都是字符型   

月合计字段为数值型,怎么使它自动累加D01日到D31日
谢谢!

[ 本帖最后由 jonny_pan 于 2012-9-20 08:59 编辑 ]
搜索更多相关主题的帖子: 记录表 数据库操作 设备 如何 
2012-09-20 08:52
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
得分:0 
贴上原数据,要达到的效果图
表中各字段数据类型?
2012-09-20 08:54
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
得分:10 
程序代码:
*--- 生成表TABA结构及添加记录
CSTRU=[]
FOR I=1 TO 31
    CSTRU=CSTRU+[D]+PADL(I,2,[0])+[ N(1)]+IIF(I<31,[,],[])
ENDFOR
CREATE CURSOR TABA (设备编号 C(4),&CSTRU,月合计 N(4))
FOR I=1 TO 10
    INSERT INTO TABA (设备编号) VALUES (PADL(I,4,[0]))
ENDFOR
GO TOP
*--- 生成表TABB结构及添加记录
CREATE CURSOR TABB (设备编号 C(4),使用日期 D,使用情况 C(100))
INSERT INTO TABB (设备编号,使用日期) VALUES ([0001],{^2012.08.01})
INSERT INTO TABB (设备编号,使用日期) VALUES ([0001],{^2012.08.02})
INSERT INTO TABB (设备编号,使用日期) VALUES ([0002],{^2012.08.02})
INSERT INTO TABB (设备编号,使用日期) VALUES ([0003],{^2012.08.02})
INSERT INTO TABB (设备编号,使用日期) VALUES ([0006],{^2012.08.03})
INSERT INTO TABB (设备编号,使用日期) VALUES ([0007],{^2012.08.03})
SCAN
   REPLACE (FIELD(DAY(TABB.使用日期)+1)) WITH 1 FOR !EMPTY(TABB.设备编号) AND !EMPTY(TABB.使用日期) AND TABA.设备编号==TABB.设备编号 IN TABA
ENDSCAN
SELECT TABA
SCAN
   HJ=0
   FOR I=2 TO 32
      HJ=HJ+EVALUATE(FIELD(I))   
   ENDFOR
   REPLACE 月合计 WITH HJ
ENDSCAN
*--- 或者
REPLACE ALL 月合计 WITH D01+D02+...+D30+D31

BLANK ALL FIELDS 月合计 FOR EMPTY(月合计)
BROWSE


[ 本帖最后由 bccn201203 于 2012-9-20 10:21 编辑 ]
2012-09-20 09:37
jonny_pan
Rank: 1
来 自:吉林省通化市
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-4
得分:0 
回复 3楼 bccn201203
辛苦你了,可能是我没说明白吧.
我的意思是B库已经输入完数据,要将A库中编号和B库相同的记录对应日期字段中的数据换成1.

比如B库中编号:0052,0065,0128,日期:20120920
要将A库中编号相同的记录中的D20日换成1,
2012-09-20 10:18
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
得分:0 
以下是引用jonny_pan在2012-9-20 10:18:27的发言:

辛苦你了,可能是我没说明白吧.
我的意思是B库已经输入完数据,要将A库中编号和B库相同的记录对应日期字段中的数据换成1.

比如B库中编号:0052,0065,0128,日期:20120920
要将A库中编号相同的记录中的D20日换成1,
把上面的代码运行一遍,看下结果,再说话
要不你上传数据表记录
2012-09-20 10:23
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
得分:0 
问题说不明白,就贴上截图
2012-09-20 10:27
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
得分:0 


[ 本帖最后由 bccn201203 于 2012-9-20 13:27 编辑 ]
2012-09-20 11:29
jonny_pan
Rank: 1
来 自:吉林省通化市
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-4
得分:0 
GO TOP
SCAN
   REPLACE (FIELD(DAY(mobiao1.使用日期)+1)) WITH 1 FOR !EMPTY(mobiao1.设备编号) AND !EMPTY(mobiao1.使用日期) AND mobiao2.设备编号==mobiao1.设备编号 IN mobiao1
ENDSCAN
运行提示:找不到属性:使用日期?
2012-09-21 08:40
bccn201203
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:680
专家分:1140
注 册:2012-3-14
得分:0 
以下是引用jonny_pan在2012-9-21 08:40:42的发言:

GO TOP &&该句不需要
SCAN
   REPLACE (FIELD(DAY(mobiao1.使用日期)+1)) WITH 1 FOR !EMPTY(mobiao1.设备编号) AND !EMPTY(mobiao1.使用日期) AND mobiao2.设备编号==mobiao1.设备编号 IN mobiao1
ENDSCAN运行提示:找不到属性:使用日期?
找不到是你的事情,如此详细,还不会,说不过去了吧

[ 本帖最后由 bccn201203 于 2012-9-21 21:27 编辑 ]
2012-09-21 21:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-381719-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.412993 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved