以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请教如何查询某个时间段之前不重复的记录  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=28112)

--  作者:夕然
--  发布时间:2013/1/19 11:55:00
--  [求助]请教如何查询某个时间段之前不重复的记录
SELECT *  FROM 订单 AS 订单 WHERE (   订单.日期 < #2013-01-19# )
上面的语句查询出了所有2013年1月19日之前的订单数据
结果如下
姓名  金额  订单日期
A        12   2012-10-09
A        34   2012-09-09
A        33   2012-08-09
B        1     2012-12-09
B        1     2012-09-09

我想得到这样的结果
姓名  金额  订单日期
A        12   2012-10-09
B        1     2012-12-09


即:
每个会员最后一条订单信息。
我用find查找


For Each dr0 As DataRow In DataTables("订单").DataRows  
    Dim dr As DataRow
    With DataTables("订单")
        dr = .Find("姓名 = \'" & dr0("姓名") & "\'","订单日期 Desc") 
    End With  
Next

最后没有任何变化,请老师们指导

--  作者:程兴刚
--  发布时间:2013/1/19 11:57:00
--  
发这样的帖子最好带上示例文件!
--  作者:夕然
--  发布时间:2013/1/19 12:04:00
--  
忘了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.table



--  作者:lin_hailun
--  发布时间:2013/1/19 12:22:00
--  
 这样

select 姓名, (select top 1 订单日期 from {订单} as b where b.订单日期 < #2013-01-19# And b.姓名 = a.姓名 ) as 日期 from (select 姓名 from {订单} where 订单日期 < #2013-01-19# group by 姓名) as a

--  作者:夕然
--  发布时间:2013/1/19 12:32:00
--  
谢谢林老师,我再仔细学习一下

这段代码在查询表中有用
但是我放在fill中就报错,是怎么回事呢

如下


tables("窗口1_table1").fill(“Select 姓名, (Select top 1 订单日期 from {订单} As b where b.订单日期 < #2013-01-19# And b.姓名 = a.姓名 ) As 日期 from (Select 姓名 from {订单} where 订单日期 < #2013-01-19# group by 姓名) As a ”,fasle)
[此贴子已经被作者于2013-1-19 12:38:50编辑过]

--  作者:lin_hailun
--  发布时间:2013/1/19 14:19:00
--  
 最后一个参数使用 true,只能是sqlquery类型的。

 如果是sqltable类型的,是可以更新的。这种的话,你只能用副本,然后filter了。