以下是引用hanetyb在2008-1-19 17:56:03的发言:求助一下,小弟我不会vb,最近正在学习之.由于急用, 请教一下. 我用 access链接了一个excel表名,链接表名 data1 .其中 excel表部分列记录(如下,只上了,A,B,C列). 制作了一个查询表,实现显示同一个用户相邻记录时差是否7天内(后一订单相对前一订单)的 订单的记录. 查询我已经做好.问题怎样判断符合同一用户前后订单满足7天内的订单条件.(A客户的订单2与订单1之间的天数,是否相差7天以上,是为1,否为0) 客户 | 订单 | Datetime | A | a1 | 2007-2-5 10:22 | A | a2 | 2007-2-6 12:38 | B | a3 | 2007-2-13 16:41 | C | a4 | 2007-2-27 14:43 | D | a5 | 2007-3-12 13:16 | D | a6 | 2007-3-12 18:35 | D | a7 | 2007-3-15 16:09 | E | a8 | 2007-3-17 21:26 | E | a9 | 2007-3-19 14:06 | F | a10 | 2007-3-20 9:52 | F | a11 | 2007-3-23 10:13 | AA | a12 | 2007-4-10 18:36 | AA | a13 | 2007-4-16 18:04 | DF | a14 | 2007-5-9 15:45 | EF | a15 | 2007-5-11 11:55 |
需要一个辅助查询,这样比较容易一些。 查询1(过渡查询): SELECT [%$##@_Alias].客户, [%$##@_Alias].订单, [%$##@_Alias].日期, Count(*) AS 分序号 FROM [SELECT a.订单, a.客户, a.日期,clng(a.日期-b.日期) as 日期差 FROM data1 a left join data1 b on a.日期>=b.日期 AND a.客户 = b.客户]. AS [%$##@_Alias] GROUP BY [%$##@_Alias].客户, [%$##@_Alias].订单, [%$##@_Alias].日期 ORDER BY [%$##@_Alias].客户, [%$##@_Alias].日期;
查询2(结果查询): SELECT [%$##@_Alias].客户, [%$##@_Alias].订单, [%$##@_Alias].日期, iif([%$##@_Alias].日期1>7,1,0) AS 是否大于7天 FROM [SELECT a.订单, a.客户, a.日期,clng(a.日期-iif(isnull(b.日期),a.日期,b.日期)) as 日期1 FROM 查询1 a left join 查询1 b on a.分序号=b.分序号+1 AND a.客户 = b.客户]. AS [%$##@_Alias] ORDER BY [%$##@_Alias].客户, [%$##@_Alias].日期;
[此贴子已经被作者于2008-1-20 11:54:16编辑过] |