以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]将筛选的数据填入到临时表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34019)

--  作者:云淡风轻
--  发布时间:2013/5/29 9:29:00
--  [求助]将筛选的数据填入到临时表

Dim dtb As New DataTableBuilder("标签表")
dtb.AddDef("箱号", Gettype(String), 50)
dtb.AddDef("起始档号", Gettype(String), 50)
dtb.AddDef("终止档号", Gettype(String), 50)
dtb.Build()

Dim dr As DataRow = DataTables("标签表").AddNew()
For Each c As Col In Tables("S1室藏案卷").Cols  
    dr("箱号") = DataTables("S1室藏案卷").Compute("存放地点","[全宗号] = \'023\' and [分类号] = \'2.1\' group by 存放地点")
    dr("起始档号") = DataTables("S1室藏案卷").Compute("min(档号)","[全宗号] = \'023\' and [分类号] = \'2.1\' group by 存放地点")
    dr("终止档号") = DataTables("S1室藏案卷").Compute("max(档号)","[全宗号] = \'023\' and [分类号] = \'2.1\' group by 存放地点")
Next

 

 

哪里不对?group by 存放地点不可以??

测试数据

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.rar

测试数据再加两列全宗号和分类号,数据分别重复填充成023和2.1
[此贴子已经被作者于2013-5-29 9:30:01编辑过]

--  作者:XYT
--  发布时间:2013/5/29 9:32:00
--  
图片点击可在新窗口打开查看你怎么是用 group by ,你都不是用Select
--  作者:Bin
--  发布时间:2013/5/29 9:36:00
--  
表达式,没有 group by的吧
--  作者:云淡风轻
--  发布时间:2013/5/29 9:37:00
--  
compute里就没有select的啊
--  作者:云淡风轻
--  发布时间:2013/5/29 9:38:00
--  
没有group by我做不了,不分组,值就筛选不出来的啊
--  作者:XYT
--  发布时间:2013/5/29 9:39:00
--  

那你用统计啊

[此贴子已经被作者于2013-5-29 9:39:49编辑过]

--  作者:云淡风轻
--  发布时间:2013/5/29 9:45:00
--  
那个函数有这个功能,可以分组筛选的数据
--  作者:Bin
--  发布时间:2013/5/29 9:48:00
--  
http://www.foxtable.com/help/topics/0677.htm
--  作者:云淡风轻
--  发布时间:2013/5/29 11:07:00
--  

Dim b As New GroupTableBuilder("标签表",DataTables("S1室藏案卷"))
b.Filter = "[全宗号] = \'023\' and [分类号] = \'2.1\'"
b.Groups.AddDef("存放地点","箱号")
b.Totals.AddDef("档号",AggregateEnum.Min,"起始档号")
b.Totals.AddDef("档号",AggregateEnum.Max,"终止档号")
b.VerticalTotal = False
b.Build
MainTable = Tables("标签表")

 

 


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

档号列是字符串的,不能更改类型的,怎么办?


--  作者:狐狸爸爸
--  发布时间:2013/5/29 11:42:00
--  

Dim dtb As New DataTableBuilder("标签表")
dtb.AddDef("箱号", Gettype(String), 50)
dtb.AddDef("起始档号", Gettype(String), 50)
dtb.AddDef("终止档号", Gettype(String), 50)
dtb.Build()
For Each nm As String In DataTables("表A").GetUniqueValues("","存放地点")
    Dim min As String = DataTables("表A").Compute("min(档号)","存放地点 = \'" & nm & "\'")
    Dim max As String = DataTables("表A").Compute("Max(档号)","存放地点 = \'" & nm & "\'")
    Dim dr As DataRow = DataTables("标签表").AddNew()
    dr("箱号") = nm
    dr("起始档号") = min
    dr("终止档号") = max
Next