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


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

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

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望: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编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/8/4 10:02:00 [显示全部帖子]

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

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望: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天 的这个天数吗?


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/8/4 11:19:00 [显示全部帖子]

 


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

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/8/4 11:50:00 [显示全部帖子]

 

[此贴子已经被作者于2014-8-4 12:00:29编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/8/4 12:00:00 [显示全部帖子]

 甜老师,Bin老师的语句:

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

 

因为 {顾客回访分析}是视图查询表,不能保存。所以我要在 {顾客档案}里操作:

比如:

update {顾客档案} set 归属门店 = "" where DateDiff('d',今天时间,录入时间)>=30 and 最后一次回访时间<=录入时间
但是 {顾客档案}里没有 【最后一次回访时间】这一列。
 
你说我是不是 这样操作:
 
在{顾客档案}增加 【最后回访时间】字段
{回访记录}  datarowadding 里面  当增加一行后  并且回访时间不为空  就将这个值赋到{顾客档案}里的同一个【电话号码】 的【最后回访时间】 字段里
 
然后就可以执行:update {顾客档案} set 归属门店 = "" where DateDiff('d',今天时间,录入时间)>=30 and 最后一次回访时间<=录入时间
 
不知道有没有比这种更好的方式。。。

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/8/4 13:54:00 [显示全部帖子]

甜老师,我刚才看你给的博客,这样写。。。

Dim cmd As New SQLCommand
cmd.C
cmd.commandtext = "update {基本信息} set 归属门店 = '2' where DateDiff(d,录入时间,GetDate())>=30 and  {VIP回访记录}.最后一次回访时间 <= {基本信息}.录入时间 "
cmd.ExecuteNonQuery

 

结果是:


图片点击可在新窗口打开查看此主题相关图片如下:条件在另外一个表。。.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/8/4 15:16:00 [显示全部帖子]

哈,甜老师,我真想学一下这个存储过程怎么写。。。我真把数据库发给你了哈

 

 

 

二张表:

基本信息   表

VIP回访记录  表

 

一张视图:大海捞鱼 

 

其实就是用到  基本信息 和  大海捞鱼 ,或者直接用  基本信息  和 VIP回访记录 

 

 

万分感谢!!

有机会请你吃冰激凌图片点击可在新窗口打开查看

 

[此贴子已经被作者于2014-8-4 16:05:12编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/8/5 11:24:00 [显示全部帖子]

谢谢甜老师!!

 

这段代码终于搞明白了

 

后来想直接放在数据库的,但是研究半天不知道怎么弄。

 

那还是先放在foxtable,以后再来弄。一步一步来。

 

谢谢甜老师!!


 回到顶部