Foxtable(狐表)用户栏目专家坐堂 → 直接在远程数据库表里做判断?


  共有3561人关注过本帖树形打印复制链接

主题:直接在远程数据库表里做判断?

帅哥哟,离线,有人找我吗?
fubblyc
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
直接在远程数据库表里做判断?  发帖心情 Post By:2014/8/4 9:36:00 [只看该作者]

各位老师好,遇到一个小问题。。

 

我有2张表,以及用这两张表在数据库做成的视图

一张:{顾客档案表}(数据表,可编辑、可保存)(列:顾客姓名、顾客电话、归属门店、录入时间等等)

一张:{顾客回访表}(数据表,可编辑、可保存)(列:顾客姓名、顾客电话、回访时间、回访内容)

这两张表在数据库做成的视图:{顾客回访分析}(视图或者叫做查询表,只可编辑、不可保存)(列:顾客姓名、顾客电话、归属门店、录入时间、最后一次回访时间)【最后回访时间】  是{顾客回访表}的【回访时间】 的 MAX

 

现在想实现这样一个效果。

 

在每次打开项目后,判断:

 

如果 【归属门店】不为空 且 【今天时间】-【录入时间】 >=30天  且 【最后一次回访时间】<=【录入时间】

则 将  {顾客档案表}中的  【归属门店】 的符合上面条件的行  的内容清空

否则,不做任何改变。

 

那是不是 要把 {顾客回访分析}表里的数据给全部加载到项目里的一个临时表,然后遍历所有行,再进行判断呢?

这样效率会不会比较低,不知道有没有更好的办法,直接在数据库里判断。。。

 

 

[此贴子已经被作者于2014-8-4 9:42:24编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/4 9:45:00 [只看该作者]

update {顾客回访分析} set 归属门店 = "" where DateDiff('d',今天时间,录入时间)>=30 and 最后一次回访时间<=录入时间



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/4 9:46:00 [只看该作者]

 1、做一个视图,在{顾客回访分析}加入条件 【今天时间】-【录入时间】 >=30天  且 【最后一次回访时间】<=【录入时间】,加载这个表,然后得到归属门店,比如用 DataTables().GetComboListString,然后弄成条件更新{顾客档案表},比如 where 归属门店 in (xxx,xxx,xxx)


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/4 9:48:00 [只看该作者]

 2、或者1的过程不经过foxtable,你直接在数据库写一个存储过程或函数,通过update select语句直接实现你的功能。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/4 9:49:00 [只看该作者]

3、或者在foxtable直接写sql语句更新内容,通过update select语句直接实现。

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/8/4 10:02:00 [只看该作者]

明白了,谢谢Bin老大和甜老师!!

 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/8/4 10:25:00 [只看该作者]

以下是引用有点甜在2014-8-4 9:48:00的发言:
 2、或者1的过程不经过foxtable,你直接在数据库写一个存储过程或函数,通过update select语句直接实现你的功能。

甜老师,在数据库写的话,可以在foxtable自定义  30天 的这个天数吗?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/4 10:27:00 [只看该作者]

 可以,你可以在调用的时候把参数传过去,你在数据库那里定义接收参数。

 

 exec 存储过程 30


 回到顶部
帅哥哟,离线,有人找我吗?
fubblyc
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2355 积分:16181 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/8/4 11:19:00 [只看该作者]

 


[此贴子已经被作者于2014-8-4 11:49:30编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/4 11:34:00 [只看该作者]

 那你就直接在foxtable里面写sql语句,执行sql语句,参考2楼代码,去查一下update select语法

 回到顶部
总数 18 1 2 下一页