以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]同类行相邻行对比标记(已解决) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67319) |
||||
-- 作者:yyzlxc -- 发布时间:2015/4/22 10:47:00 -- [求助]同类行相邻行对比标记(已解决) 要求对同类行(员工编号相同)按日期时间顺序的相邻行,对设备编号进行比较,设备编号相同的,时间大的行标记为1,否则标记为0。下面这段代码,不能达到此效果,如何修改代码实现上述效果,请各位老师指教,谢谢!! Tables("表B").Sort = "员工编号,日期时间" Dim ygbhs As List(Of String) = DataTables("表B").GetValues("员工编号") Dim sbbhs As List(Of String) = DataTables("表B").GetValues("设备编号") For Each ygbh As String In ygbhs For Each sbbh As String In sbbhs Dim drs As List(Of DataRow) = DataTables("表B").Select("[员工编号] = \'" & ygbh &"\' And [设备编号] = \'" & sbbh &"\'","日期时间") For n As Integer = 0 To drs.Count - 1 \'遍历所有行 If n > 0 AndAlso drs(n)("日期时间") > drs(n-1)("日期时间") AndAlso drs(n)("设备编号") = drs(n-1)("设备编号") Then drs(n)("标记") = 1 Else drs(n)("标记") = 0 End If Next Next Next Tables("表B").AutoSizeCols()
[此贴子已经被作者于2015/4/22 14:16:07编辑过]
|
||||
-- 作者:Bin -- 发布时间:2015/4/22 10:52:00 -- 按日期时间顺序的相邻行? 没看明白 |
||||
-- 作者:yyzlxc -- 发布时间:2015/4/22 11:01:00 -- 谢谢Bin老师的回复,就是按日期时间列的顺序,达到效果列的要求。请老师指教,谢谢!! |
||||
-- 作者:Bin -- 发布时间:2015/4/22 11:03:00 -- 例如有3个B25 按照时间排序把 后面两个标记为1? |
||||
-- 作者:yyzlxc -- 发布时间:2015/4/22 11:05:00 -- 而且相同的设备编号,后面两行标记为1. |
||||
-- 作者:Bin -- 发布时间:2015/4/22 11:22:00 -- u pdate {表B} set 标记=1 where [_Identify] not in (select [_Identify] f rom {表B} a inner join (Select 员工编号,设备编号,min(日期时间) As 日期时间 F rom {表B} Group By 员工编号,设备编号) b on a.日期时间= b.日期时间 and a.员工编号=b.员工编号 and a.设备编号=b.设备编号) |
||||
-- 作者:yyzlxc -- 发布时间:2015/4/22 12:30:00 -- 代码有误,修改后运行通过,但是不符要求。要求是,以员工编号为组,日期时间为序,如相邻两行设备代码相同,时间大的行标记为1。 |
||||
-- 作者:yyzlxc -- 发布时间:2015/4/22 12:32:00 -- |
||||
-- 作者:逛逛 -- 发布时间:2015/4/22 12:43:00 -- \'Tables("表B").Sort = "员工编号,日期时间,设备编号" Dim drs As List(Of DataRow) = DataTables("表B").Select("","员工编号,日期时间,设备编号") Dim dr As DataRow Dim dr1 As DataRow = drs(drs.Count - 1) For i As Integer = drs.Count - 2 To 0 Step -1 dr = drs(i) If dr("员工编号") = dr1("员工编号") AndAlso dr("设备编号") = dr1("设备编号") Then dr1("标记") = 1 Else dr1("标记") = 0 End If dr1 = dr Next |
||||
-- 作者:yyzlxc -- 发布时间:2015/4/22 13:27:00 -- 谢谢逛逛老师的指教,达到预期效果,存在一点瑕疵,好像第一行不能填充标记,能否解决。再次感谢逛逛老师!! |