Foxtable(狐表)用户栏目专家坐堂 → 脑子突然短路了,求助..


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

主题:脑子突然短路了,求助..

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


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
脑子突然短路了,求助..  发帖心情 Post By:2014/2/26 19:17:00 [只看该作者]

把tables里所有ID号相同,但是生成时间不一样的数据行筛选出来,并且只显示离现在时间最近的代码该怎么写?
图片点击可在新窗口打开查看短路了。。。
[此贴子已经被作者于2014-2-26 20:11:39编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/2/26 19:49:00 [只看该作者]

 你执行这句sql可以得到ID号重复(超过2个)的记录,但是你说的生成时间不一样的数据是什么意思?用什么做标准?

 最后你说的只显示时间最近?真心理解不透

select * from (select 第一列 from {表A} group by 第一列 having count(第一列) > 1) as a inner join {表A} as b on a.第一列 = b.第一列

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


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2014/2/26 19:55:00 [只看该作者]

以下是引用有点甜在2014-2-26 19:49:00的发言:
 你执行这句sql可以得到ID号重复(超过2个)的记录,但是你说的生成时间不一样的数据是什么意思?用什么做标准?

 最后你说的只显示时间最近?真心理解不透

select * from (select 第一列 from {表A} group by 第一列 having count(第一列) > 1) as a inner join {表A} as b on a.第一列 = b.第一列



==============
ID   记录日期
1    2011-11-10
1    2011-12-1
2    2011-11-10
2    2011-12-1


筛选出来效果显示是:
ID   记录日期
1    2011-12-1
2    2011-12-1


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/2/26 20:06:00 [只看该作者]

 呃,id=1,日期=2011-12-1,假设有2条这样的记录呢?

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


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2014/2/26 20:10:00 [只看该作者]

以下是引用有点甜在2014-2-26 20:06:00的发言:
 呃,id=1,日期=2011-12-1,假设有2条这样的记录呢?
这个不会出现的,程序的其他部分做了限定


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


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2014/2/26 20:10:00 [只看该作者]

以下是引用有点甜在2014-2-26 20:06:00的发言:
 呃,id=1,日期=2011-12-1,假设有2条这样的记录呢?
日期不是固定的,要取最大值,也就是最靠近今天的


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


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2014/2/26 20:11:00 [只看该作者]

实际运用的例子是
物料的客户报价
有机会对客户的报价会有降低或者提高,这个时候就要取最近日期的

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/2/26 20:23:00 [只看该作者]

 这样写代码,你先试试,第一列 = id,第二列 = 日期

Dim cmd As new SQLCommand
cmd.CommandText = "select [_Identify] from (select 第一列, max(第二列) as 第二列 from {表A} group by 第一列 having count(第一列) > 1) as a left join {表A} as b on a.第一列 = b.第一列 and a.第二列 = b.第二列"
Dim dt As DataTable = cmd.ExecuteReader()
Dim idx As String = ""
For Each dr As DataRow In dt.DataRows
    idx += dr("_Identify") & ","
Next
Tables("表A").filter = "_Identify in (" & idx.trim(",") & ")"

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


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2014/2/26 20:25:00 [只看该作者]

谢谢有点甜,我用SQL筛选搞定了

 回到顶部