Foxtable(狐表)用户栏目专家坐堂 → fill 加载表 两个字段的组合


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

主题:fill 加载表 两个字段的组合

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
fill 加载表 两个字段的组合  发帖心情 Post By:2014/3/25 9:02:00 [只看该作者]

各位老师早:

 

Dim sql,ex1,ex2,ex3,ex4 As String
ex1 = "Round(DateDiff( m,MAX(消费日期),GetDate()),0)"
ex2 = vbcrlf  & "(Case" & vbcrlf
ex2+ ="When " & ex1 & ">= 13  Then '一星活跃'"  & vbcrlf
ex2+ ="When " & ex1 & ">= 10 and " & ex1 & " < 13 Then '二星活跃'" & vbcrlf
ex2+ ="When " & ex1 & ">= 6 and " & ex1 & " < 10 Then '三星活跃'" & vbcrlf
ex2+ ="When " & ex1 & ">= 3 and " & ex1 & " < 6 Then '四星活跃'" & vbcrlf
ex2+ = "Else  '五星活跃'" & vbcrlf
ex2+ ="End) As 活跃级别  "

ex3 = "COUNT(DISTINCT 消费日期) "
ex4 = vbcrlf  & "(Case" & vbcrlf
ex4+ ="When " & ex3 & ">= 15  Then '五星忠诚'"  & vbcrlf
ex4+ ="When " & ex3 & ">= 10 and " & ex1 & " < 15 Then '四星忠诚'" & vbcrlf
ex4+ ="When " & ex3 & ">= 6 and " & ex1 & " < 10 Then '三星忠诚'" & vbcrlf
ex4+ ="When " & ex3 & ">= 3 and " & ex1 & " < 6 Then '二星忠诚'" & vbcrlf
ex4+ = "Else  '一星忠诚'" & vbcrlf
ex4+ ="End) As 忠诚级别  "

 

    sql = "select  * from (Select  {rjsytVIP基本信息}.归属门店代号 ,{rjsytVIP消费信息}.VIP卡号, " & ex2 & "  ,    " & ex4 & "    FROM "
    sql+ = "((rjsyt管理层名单 LEFT JOIN rjsytVIP基本信息 ON rjsytVIP基本信息.归属门店代号 = rjsyt管理层名单.归属门店代号) RIGHT JOIN rjsytVIP消费信息 ON 卡号 = {rjsytVIP消费信息}.VIP卡号 RIGHT JOIN rjsytVIP拓展信息 ON {rjsytVIP拓展信息}.VIP卡号 = {rjsytVIP消费信息}.VIP卡号 )  where {rjsytVIP消费信息}.[_Identify] Is Null   GROUP BY  {rjsytVIP消费信息}.VIP卡号, {rjsytVIP基本信息}.归属门店代号)  As a Where "  

  Tables("VIP行为信息_VIP行为信息").Fill(sql,"VIP数据", True)

 

 

我想增加一个列名为【顾客类别】,值是【活跃级别】与【忠诚级别】的组合,即:" & ex2 & "  与   " & ex4 & "的组合,我这样写:“" & ex2 & "  &  " & ex4 & "” AS 顾客类别     

 

没有实现。。。。不知道怎么写。。。

[此贴子已经被作者于2014-3-25 9:17:51编辑过]

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


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

你这样很难看出具体是什么效果.
1.自己利用messagebox.show弹出一下拼接的结果看看,或者把拼接的结果发出来
2.上例子.

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


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

哦哦,忘了。。拼接如下:

 

select  * from ({rjsytVIP基本信息}.归属门店代号 , {rjsytVIP消费信息}.VIP卡号, 

(Case

When Round(DateDiff( m,MAX(消费日期),GetDate()),0)>= 13  Then '一星活跃'

When Round(DateDiff( m,MAX(消费日期),GetDate()),0)>= 10 and Round(DateDiff( m,MAX(消费日期),GetDate()),0) < 13 Then '二星活跃'

When Round(DateDiff( m,MAX(消费日期),GetDate()),0)>= 6 and Round(DateDiff( m,MAX(消费日期),GetDate()),0) < 10 Then '三星活跃'

When Round(DateDiff( m,MAX(消费日期),GetDate()),0)>= 3 and Round(DateDiff( m,MAX(消费日期),GetDate()),0) < 6 Then '四星活跃'

Else  '五星活跃'

End) As 活跃级别 , 

(Case

When COUNT(DISTINCT 消费日期) >= 15  Then '五星忠诚'

When COUNT(DISTINCT 消费日期) >= 10 and Round(DateDiff( m,MAX(消费日期),GetDate()),0) < 15 Then '四星忠诚'

When COUNT(DISTINCT 消费日期) >= 6 and Round(DateDiff( m,MAX(消费日期),GetDate()),0) < 10 Then '三星忠诚'

When COUNT(DISTINCT 消费日期) >= 3 and Round(DateDiff( m,MAX(消费日期),GetDate()),0) < 6 Then '二星忠诚'

Else  '一星忠诚'

End) As 忠诚级别

FROM ((rjsyt管理层名单 LEFT JOIN rjsytVIP基本信息 ON rjsytVIP基本信息.归属门店代号 = rjsyt管理层名单.归属门店代号) RIGHT JOIN rjsytVIP消费信息 ON 卡号 = {rjsytVIP消费信息}.VIP卡号 RIGHT JOIN rjsytVIP拓展信息 ON {rjsytVIP拓展信息}.VIP卡号 = {rjsytVIP消费信息}.VIP卡号 )  where {rjsytVIP消费信息}.[_Identify] Is Null   GROUP BY  {rjsytVIP消费信息}.VIP卡号, {rjsytVIP基本信息}.归属门店代号)  As a Where

 

 

我自己写的:“" & ex2 & "  &  " & ex4 & "” AS 顾客类别 是不对的,一写上去,因为 “ " & ex2 & "  &  " & ex4 & " ” AS 顾客类别  应该是多了了这个“”

 

就提示说要以语句结束。

 

 

我想了解的是像类似这种 " & ex2 & " 与 " & ex4 & "  两个字段的值组合成一个新的字段的写法是什么样的。

 

比如:在 之前在 表属性的 datacolchanged  的代码格式是:

e.datarow("顾客类别")=e.datarow("活跃级别") & e.datarow("忠诚级别")

 

 

[此贴子已经被作者于2014-3-25 9:48:48编辑过]

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


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

就是 ex2 & ex4   另外你拼接的SQL语句一下子看上去也是正常的啊.

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


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

恩恩,Bin老师,我试了如下几种方式都不对:

 

ex2 & ex4   As 顾客类别

 

ex2 & ex4 "  As 顾客类别

 

" " & ex2 & "   &   " & ex4 & "  " As 顾客类别

 

" ' & ex2 & '   &   '& ex4 & ' " As 顾客类别

 

哎。。。

 


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


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

关键要看拼接出来的效果是怎么样才可以调整,才可以知道你想怎么样.你上例子吧.  或者把拼接出来的结果发出来

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


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

好,谢谢Bin老师,我上例子。


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


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


[此贴子已经被作者于2014-3-25 11:50:02编辑过]

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


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

你发的例子,并无报错啊.

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


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

我没加进去

加进去就乱了。。。


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