以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何实现这种统计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85076)

--  作者:huozhe
--  发布时间:2016/5/17 10:53:00
--  [求助]如何实现这种统计
我有如下字段

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

如何实现这种统计

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


--  作者:大红袍
--  发布时间:2016/5/17 10:59:00
--  
需要编码实现,上传实例。
--  作者:大红袍
--  发布时间:2016/5/17 11:01:00
--  

做一个临时表,加入一列项目列,输入各个需要统计的项目。

 

根据归属地动态添加列,然后循环每一行,统计。


--  作者:huozhe
--  发布时间:2016/5/17 11:17:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计.foxdb
辛苦老师了

--  作者:大红袍
--  发布时间:2016/5/17 11:27:00
--  

参考代码

 

Dim dt1 As DataTable = DataTables("统计表")
Dim dt2 As DataTable = DataTables("人才库")
For Each dr As DataRow In dt1.DataRows
    Dim filter As String = ""
    Select Case dr("项目")
        Case "男"
            filter = "性别 = \'男\'"
        Case "大学本科"
            filter = "学历 = \'大学本科\'"
        Case "汉族"
            filter = "民族 = \'汉族\'"
        Case "36-45岁"
            filter = "年龄 >= 36 and 年龄 <= 45"
    End Select
    If filter = Nothing Then
        For Each dc As DataCol In dt1.DataCols
            If dc.name <> "项目" Then
                dr(dc.name) = Nothing
            End If
        Next
    Else
        For Each dc As DataCol In dt1.DataCols
            If dc.name <> "项目" Then
                dr(dc.name) = dt2.compute("count(姓名)", filter & " and 类别 = \'" & dc.name & "\'")
            End If
        Next
    End If
Next


--  作者:huozhe
--  发布时间:2016/5/17 11:46:00
--  
OK 谢谢老师!我再消化一下,把他完善了。