| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 269 人关注过本帖
标题:合并列表中指定时间的数据
只看楼主 加入收藏
aroffice
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2011-9-23
结帖率:84.21%
收藏
已结贴  问题点数:5 回复次数:3 
合并列表中指定时间的数据
有一个表ZZ有一个字段为dqrq 字段类型为 T,字段zjh 类别为C ,另有一个YY,结构相同

现在要将两个表合并,合并要求为YY中的记录与ZZ表中 zjh不一致的,追加进来。
zjh一致的,需要判断dqrq是为在60分钟以内,如果在60分钟以内,不合并,如果差距在60分钟及以上的合并。
zjh不一致的我知道如何处理。
现在关键是处理zjh一致,但时间差在60分钟以内的数据如何追加

[此贴子已经被作者于2023-9-20 14:15编辑过]

搜索更多相关主题的帖子: 数据 合并 一致 表中 时间 
2023-09-20 13:27
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:41
帖 子:763
专家分:2503
注 册:2011-5-8
收藏
得分:5 
回复 楼主 aroffice
程序代码:
SELECT * FROM yy WHERE  zjh ! in (SELECT zjh FROM zz)  INTO CURSOR tmp
SELECT zz
APPEND FROM DBF('tmp')
SELECT a.* FROM yy a,zz b WHERE a.zjh==b.zjh AND a.dqrq-b.dqrq>3600 INTO tmp
SELECT zz
APPEND FROM DBF('tmp')

dBase有人接盘了。
2023-09-20 16:06
aroffice
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2011-9-23
收藏
得分:0 
回复 2楼 xuminxz
使用你的代码感觉得到的结果与我所需要的有差距。
我做了些模拟数据,需要追加为我标记为了1,不需要追加的标记为了0
图片附件: 游客没有浏览图片的权限,请 登录注册


这个附件里是模拟数据
模拟数据.zip (101.02 KB)
2023-09-21 09:30
aroffice
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2011-9-23
收藏
得分:0 
USE ZZ
COPY TO BAK
USE BAK
ALTER TABLE BAK ADD LY C(1)
REPLACE LY WITH "A" ALL

APPEND FROM YY
REPLACE LY WITH "B" FOR EMPTY(LY)
SELECT * FROM BAK ORDER BY ZJH,DQRQ DESC,LY INTO DBF PXXXK

CLOSE DATABASES ALL
DELETE FILE BAK.DBF

USE PXXXK
GOTO TOP
T_SJ=DATETIME()
T_ZJH=""
SCAN
    IF T_ZJH=ZJH THEN
        IF ABS(T_SJ-DQRQ)/60<30 THEN
            DELETE
        ELSE
            T_SJ=DQRQ
        ENDIF
    ELSE
        T_SJ=DQRQ
        T_ZJH=ZJH
    ENDIF
ENDSCAN
PACK

SELECT * FROM PXXXK WHERE LY='B' INTO DBF BAK
USE ZZ

APPEND FROM BAK
2023-09-21 14:52
快速回复:合并列表中指定时间的数据
数据加载中...
 
   



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

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