以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  日期  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=53866)

--  作者:tujiu
--  发布时间:2014/7/17 10:09:00
--  日期

在重复编号中,取出编号相同行的日期 的最大值。该怎么取?


--  作者:Bin
--  发布时间:2014/7/17 10:12:00
--  
利用 Compute http://www.foxtable.com/help/topics/0393.htm

Dim Total As Date
Total = 
DataTables("订单").Compute("Max(日期)""编号 = \'PD01\'"
)
Output.Show(Total)

--  作者:tujiu
--  发布时间:2014/7/17 11:01:00
--  
用这个方式得出的结果,为什么是编号重复几行,日期也给出几行最大值?
--  作者:有点甜
--  发布时间:2014/7/17 11:06:00
--  
 什么意思?没看懂,上传一个例子说明。
[此贴子已经被作者于2014-7-17 11:05:56编辑过]

--  作者:tujiu
--  发布时间:2014/7/17 11:11:00
--  
Dim dr As DataRow
Dim dr1 As DataRow
Tables("表A").RepeatFilter("编号", 0)
Dim n As Integer = 50
For Each r As Row In CurrentTable.Rows
dr = DataTables("表A").Find("编号 = \'"& r("编号") &"\'","日期 Desc",0)
dr("编号") = n
n = n + 1
Next

--  作者:有点甜
--  发布时间:2014/7/17 11:16:00
--  

 你想说明什么?这个意思?

 

Dim dr As DataRow
Dim dr1 As DataRow
Tables("表A").RepeatFilter("编号", 0)

For Each r As Row In CurrentTable.Rows
    dr = DataTables("表A").Find("编号 = \'"& r("编号") &"\'","日期 Desc",0)
    r("编号") = dr("编号") + 1
Next


--  作者:tujiu
--  发布时间:2014/7/17 11:30:00
--  
我的意思是,把编号相同的行,找出他们日期是最大的,然后把日期最大的行的编号重新按照50开始赋值,排序下去。
--  作者:有点甜
--  发布时间:2014/7/17 11:37:00
--  

完全不理解你的意思。

 

把编号相同的行找出来以后,日期最大的,肯定只有一行啊,怎么排下去。

 

请用具体的数据或具体的例子说明问题。


--  作者:tujiu
--  发布时间:2014/7/17 11:54:00
--  

看截图

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

 

通过下面的代码实现效果:

Dim dr As DataRow
Tables("表A").RepeatFilter("编号", 0)
Dim n As Integer = 50
For Each r As Row In CurrentTable.Rows
dr = DataTables("表A").Find("编号 = \'"& r("编号") &"\'","日期 Desc",0)
dr("编号") = n
n = n + 1
Next

 

 


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

 

但是实现的结果却不一样.我不知道代码的问题出在哪里?


--  作者:有点甜
--  发布时间:2014/7/17 12:11:00
--  
Dim num As Integer = 50
For Each bh As String In DataTables("表A").GetValues("编号")
    Dim drs As List(Of DataRow) = DataTables("表A").Select("编号 = \'" & val(bh) & "\'", "日期")
    If drs.Count > 1 Then
        For i As Integer = 1 To drs.Count - 1
            drs(i)("编号") = num
            num += 1
        Next
    End If
Next