Access交流中心

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

回复 加入收藏帖  复制
我要提问 帖子上移

新人求助:update 2个表连接查询更新,加时间间隔判断

jerry 等级: 普通会员 积分:0 金币:0 来自:杭州Access交流中心 发表于:2019-05-22 14:46:29  
楼主

表A:企业信息 client_info  主键:ComID,其他用到:UserID

表B:拜访信息 client_visit 主键:ID,其他用到:ComID,intime,

两个表的 ComID是一致的,就是一个单位只有一个ComID,intime是拜访时间;

要实现功能,拜访时间距离现在已经超过90天的单位userID=>0;

写的语句如下:

sql="update client_info AS A INNER JOIN client_visit AS B ON A.ComID=B.ComID set A.UserID=0 where DateDiff("d",B.intime,now())>90"

错误应该是在 DateDiff("d",B.intime,now())>90 这里,改成1=1的话,client_info全部会更新,不会找特定的。

请教大家,应该怎么改才行呢

 

access培训  诚聘access开发人员

    jerry
      获得社区协助:请教问题(即发帖)1篇,其中获得解决的0篇;
      协助社区成员:协助他人(即回帖)0篇,其中被设为【最佳答案】的0篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
Top

扫描下方工作人员的微信二维码加微信,邀您加入Access课堂微信群,进入一个技术交际圈:

网站工作人员微信

jerry 等级:普通会员 积分:0 金币:0 来自:杭州Access交流中心 发表于2019/5/23 8:57:00 
1楼 得分: 0
没有大神来帮忙解答下吗

    jerry
      获得社区协助:请教问题(即发帖)1篇,其中获得解决的0篇;
      协助社区成员:协助他人(即回帖)0篇,其中被设为【最佳答案】的0篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
jerry 等级:普通会员 积分:0 金币:0 来自:杭州Access交流中心 发表于2019/5/23 11:02:14 
2楼 得分: 0
ASP+ACCESS的

    jerry
      获得社区协助:请教问题(即发帖)1篇,其中获得解决的0篇;
      协助社区成员:协助他人(即回帖)0篇,其中被设为【最佳答案】的0篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
jerry 等级:普通会员 积分:0 金币:0 来自:杭州Access交流中心 发表于2019/5/24 11:43:51 
3楼 得分: 0
改进了下,因为要实现功能如下:
1、对照client_info ,判断Client_visit里面没有出现过的ComID,直接set UserID=0;
2、如果 Client_visit有出现过,判断最新的一条记录的拜访时间intime(或者同一个comID列出来比较最新的时间intime?),如果距离现在已经超过90天的单位 set UserID=0;

前面没考虑清楚,写的语句如下:

sql="update client_info AS A LEFT JOIN (select * from client_visit where id in(select max(id) from client_visit group by comid) AS B ON A.COMID=B.COMID set A.userid=0 where DateDiff('d',B.intime,now())>90 or B.ComID is null"


请教大神这句更新要怎么改呢??



    jerry
      获得社区协助:请教问题(即发帖)1篇,其中获得解决的0篇;
      协助社区成员:协助他人(即回帖)0篇,其中被设为【最佳答案】的0篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
总记录:3篇  页次:1/1 9 1 :
您还没有在Access软件网登录不能回复帖子
  • 你没有登录,请点击后面链接登录:登录
  • 如果你没有注册,请点击后面链接注册:注册,注册完成后,请再次访问本页功能。