以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  如何实现统计不同性别的不同年龄段的数量?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=117200)

--  作者:comnets
--  发布时间:2018/4/8 17:21:00
--  如何实现统计不同性别的不同年龄段的数量?
比如
性别 年龄
男    25
女    25
怎样统计出
性别  年龄段_21到25岁
  男              1
  女              1
合计             2
[此贴子已经被作者于2018/4/8 17:23:09编辑过]

--  作者:有点蓝
--  发布时间:2018/4/8 17:45:00
--  
参考:http://www.foxtable.com/help/scr/2964.htm


--  作者:comnets
--  发布时间:2018/4/9 9:14:00
--  
统计演示里科目例如语文列下就是需要统计的数字,我现在的表“性别”下不是数字,需要统计的是相应性别的年龄,需要怎么改才可以?

[此贴子已经被作者于2018/4/9 9:44:10编辑过]

--  作者:有点甜
--  发布时间:2018/4/9 10:25:00
--  

比如

 

b.Totals.AddExp("分布_21到25","iif(分数 >= 21 And 分数 <= 25,1,0)")

 

如果不会做,上传具体项目


--  作者:comnets
--  发布时间:2018/4/9 10:41:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:有点甜
--  发布时间:2018/4/9 11:32:00
--  

参考代码

 

Dim dr As DataRow = e.DataRow
Dim dt As DataTable =DataTables("糖尿病")
If e.DataCol.Name = "性别" And dr.IsNull("性别") = False Then
    Dim d As Date = Date.Today
    Dim filter As String = "出生年月 >= #" & d.AddYears(-15) & "# and 出生年月 < #" & d & "#"
    dr("糖尿病年龄分布_0到15岁") = dt.Compute("Count(性别)", "性别 = \'" & e.DataRow("性别") & "\' and " & filter)
    filter = "出生年月 >= #" & d.AddYears(-20) & "# and 出生年月 < #" & d.AddYears(-15) & "#"
    dr("糖尿病年龄分布_15到20岁") = dt.Compute("Count(性别)", "性别 = \'" & e.DataRow("性别") & "\' and " & filter)
    filter = "出生年月 >= #" & d.AddYears(-25) & "# and 出生年月 < #" & d.AddYears(-20) & "#"
    dr("糖尿病年龄分布_21到25岁") = dt.Compute("Count(性别)", "性别 = \'" & e.DataRow("性别") & "\' and " & filter)
End If


--  作者:comnets
--  发布时间:2018/4/9 17:41:00
--  
用年龄而不是出生日期怎么改?

count(性别)这里可以改成count(编号)吗?
[此贴子已经被作者于2018/4/9 17:52:31编辑过]

--  作者:有点甜
--  发布时间:2018/4/9 18:47:00
--  

用年龄更加简单

 

Dim dr As DataRow = e.DataRow
Dim dt As DataTable =DataTables("糖尿病")
If e.DataCol.Name = "性别" And dr.IsNull("性别") = False Then
    Dim d As Date = Date.Today
    Dim filter As String = "年龄 >= 0 and 年龄 < 15"
    dr("糖尿病年龄分布_0到15岁") = dt.Compute("Count(编号)", "性别 = \'" & e.DataRow("性别") & "\' and " & filter)
    filter = "年龄 >= 15 and 年龄 < 20"
    dr("糖尿病年龄分布_15到20岁") = dt.Compute("Count(性别)", "性别 = \'" & e.DataRow("性别") & "\' and " & filter)
End If

[此贴子已经被作者于2018/4/9 18:47:58编辑过]

--  作者:comnets
--  发布时间:2018/4/10 9:06:00
--  
多谢

不同性别下的最大年龄怎么写?试着改了一下,没有改成功。


--  作者:有点甜
--  发布时间:2018/4/10 9:42:00
--  

 

dr("最大年龄") = dt.Compute("max(年龄)", "性别 = \'" & e.DataRow("性别") & "\'")