以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  根据数据库一列值对另一数据库进行关键字过滤和统计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115031)

--  作者:女娲娘娘
--  发布时间:2018/2/28 9:54:00
--  根据数据库一列值对另一数据库进行关键字过滤和统计
各位大神有个这样的思路需要使用狐表进行统计计算,但设计思路还是感觉模糊。

问题描述:
    1、有一列数据(假设全是地名)使用这一列数据做为字典对另一个库中的一列数据(条数不限制)进行模糊匹配。
    2、匹配过后的数据进行数量统计和分类(分类需要再进行关键字定义)并与地图对应。
    3、显示结果。
难点:
    1、如果条数太多,对服务器是个考验,算法是关键。在效率和速度还有时间上找出平衡最优解。
    2、哪里有现成的狐表例子?因为时间原因还没有完成对狐表帮助的全面理解。
    3、大神们能否给个通用的思路或者可替换的代码范例。
    4、大神们能给出帮助参考的链接也可以。再加深对狐表的理解和认识。
    5、可能我的表述还是很LOW,但希望抛砖引玉得到各位的指导。

--  作者:有点甜
--  发布时间:2018/2/28 11:05:00
--  

地图参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=25188&skin=0

 

跨表匹配的问题,请做一个具体例子发上来说明。匹配逻辑是什么,最后得到什么匹配结果。


--  作者:女娲娘娘
--  发布时间:2018/2/28 13:38:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:分析样板.rar

感谢版主的回复,说明一下需求(利用狐表官网的现有数据借花谢佛了图片点击可在新窗口打开查看)请给个示例代码或方向。

1、根据行政区域里的一级(省市列)二级(县市)或者对应的区号(直到N列)做字典统计客户表里的数据
2、做出来的统计结果在地图上对应标示。
3、如果是外部数据库和大量数据的情况下应该考虑哪些方向提高查询效率并且根据硬件情况做约束?
4、如果表述LOW烦请指出,继续啃帮助图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/2/28 14:46:00
--  

参考代码

 

Dim dt1 As DataTable = DataTables("客户表")
Dim dt2 As DataTable = DataTables("行政区域")
If dt1.DataCols.Contains("省") = False Then
    dt1.datacols.Add("省", Gettype(String))
    dt1.datacols.Add("市", Gettype(String))
End If
Dim i As Integer = 0
\'dt1.StopRedraw
For Each dr As DataRow In dt1.Select("")
    For Each fdr As DataRow In dt2.DataRows
        Application.Doevents
        Dim str = dr("青岛锚链股份有限公司")
        If str.contains(fdr("省市")) Then
            dr("省") = fdr("省市")
        ElseIf fdr("省市").length >= 3 AndAlso str.contains(fdr("省市").replace("省", "").replace("市", "").replace("自治区", ""))
            dr("省") = fdr("省市")
        End If
        If str.contains(fdr("县市")) Then
            dr("市") = fdr("县市")
        ElseIf fdr("县市").length >= 3 AndAlso str.contains(fdr("县市").replace("县", "").replace("市", ""))
            dr("市") = fdr("县市")
        End If
    Next
    i += 1
    output.show(i)
Next
\'dt1.ResumeRedraw