以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]请教如何查询某个时间段之前不重复的记录 (http://foxtable.net/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 -- 忘了 |
-- 作者: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了。 |