日期:2014-05-17  浏览次数:20885 次

【求助】 dataTable 过虑重复选项
先看一张表:


表中有四个人:分别为 张三、李四、王五、赵六
有四种类型:A1,A2,B1,B2——即A类与B类

需要分别进行二种过滤:
第一种:结果图效果类似如下:


第一种筛选,即是找出张三等四个人每个人的最后一条记录(依据DataTime列字段)
然后将该时间点对应的所有字段显示出来


第二种:结果图效果类似如下:


第二种筛选,即是找出张三等四个人每一种Typer的最新时间的记录
比如:张三 A1 的时间比 A2 早,就找出 张三 A2 ...
      张三 B1 的时间比 B2 晚,就找出 张三 B1 ...
然后将该时间点对应的所有字段显示出来

这个对于大神们来说,应该是小菜啦,可是偶才接触C#时间不长,技艺不高。特来向各位达人请教!

------解决方案--------------------
DataTable.Select("XXX"),自己百度下吧
------解决方案--------------------
http://www.jb51.net/article/21539.htm
楼主这个要用到分组查询,分享个连接看看有没有用。
------解决方案--------------------
第一种
select a.* from table a 
left join 
(
   select name,max(datetime) datetime from table group by name
)b on a.name=b.name and a.datetime=b.datetime
where b.name is not null

第二种
select a.* from table a 
left join 
(
   select name,type.max(datetime) datetime from table group by name,type
)b on a.name=b.name and a.datetime=b.datetime and a.type=b.type
where b.name is not null