以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- fill 加载表 两个字段的组合 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=48198) |
-- 作者:fubblyc -- 发布时间:2014/3/25 9:02:00 -- fill 加载表 两个字段的组合 各位老师早:
Dim sql,ex1,ex2,ex3,ex4 As String ex3 = "COUNT(DISTINCT 消费日期) "
sql = "select * from (Select {rjsytVIP基本信息}.归属门店代号 ,{rjsytVIP消费信息}.VIP卡号, " & ex2 & " , " & ex4 & " FROM "
我想增加一个列名为【顾客类别】,值是【活跃级别】与【忠诚级别】的组合,即:" & ex2 & " 与 " & ex4 & "的组合,我这样写:“" & ex2 & " & " & ex4 & "” AS 顾客类别
没有实现。。。。不知道怎么写。。。 [此贴子已经被作者于2014-3-25 9:17:51编辑过]
|
-- 作者:Bin -- 发布时间:2014/3/25 9:17:00 -- 你这样很难看出具体是什么效果. 1.自己利用messagebox.show弹出一下拼接的结果看看,或者把拼接的结果发出来 2.上例子.
|
-- 作者:fubblyc -- 发布时间: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 -- 发布时间:2014/3/25 9:51:00 -- 就是 ex2 & ex4 另外你拼接的SQL语句一下子看上去也是正常的啊. |
-- 作者:fubblyc -- 发布时间:2014/3/25 10:07:00 -- 恩恩,Bin老师,我试了如下几种方式都不对:
ex2 & ex4 As 顾客类别
"ex2 & ex4 " As 顾客类别
" " & ex2 & " & " & ex4 & " " As 顾客类别
" ' & ex2 & ' & '& ex4 & ' " As 顾客类别
哎。。。
|
-- 作者:Bin -- 发布时间:2014/3/25 10:10:00 -- 关键要看拼接出来的效果是怎么样才可以调整,才可以知道你想怎么样.你上例子吧. 或者把拼接出来的结果发出来 |
-- 作者:fubblyc -- 发布时间:2014/3/25 10:12:00 -- 好,谢谢Bin老师,我上例子。 |
-- 作者:fubblyc -- 发布时间:2014/3/25 10:45:00 -- [此贴子已经被作者于2014-3-25 11:50:02编辑过]
|
-- 作者:Bin -- 发布时间:2014/3/25 10:47:00 -- 你发的例子,并无报错啊. |
-- 作者:fubblyc -- 发布时间:2014/3/25 10:52:00 -- 我没加进去 加进去就乱了。。。 |