以文本方式查看主题

-  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=177128)

--  作者:wugang0131
--  发布时间:2022/5/10 10:40:00
--  关于“专业”统计
请教一下老师,一张“个人信息表”的“专业”列,一个人专业可以有多个选项;在另一张“信息统计表”进行信息统计,其中“专业数量”统计每种专业数量,我的代码如下:
If e.DataCol.Name="序号"
    If e.DataRow.IsNull("序号") Or e.DataRow.IsNull("专业") Then
        e.DataRow("专业数量") = Nothing
    Else
        Dim zy As String = e.DataRow("专业")
        e.DataRow("专业数量") = DataTables("专家").Compute("Count(姓名)", "专业 = \'"& zy &"\'")
    End If
End If
这样只能统计单专业的数量,如果有两个以上专业则无法统计。请问老师该如何改写代码?谢谢

--  作者:有点蓝
--  发布时间:2022/5/10 10:50:00
--  
e.DataRow("专业数量") = DataTables("专家").Compute("Count(姓名)", "\',\'+" & zy & "+\',\' like \'%,\'+专业+\',%\'")
--  作者:wugang0131
--  发布时间:2022/5/10 11:05:00
--  
蓝老师,刚才用您的代码试了一下,没有执行啊。

我的意思是:比如“专家”表一个人的“专业”列内容是按“文”或“理”填写,而“信息统计”表“专业数量”列也是按“文”和“理”统计。但如果有一个人是“文”和“理”都填写,那么如何将其完全统计?麻烦蓝老师再指教一下

--  作者:有点蓝
--  发布时间:2022/5/10 11:07:00
--  
没看懂。截图具体的数据举例说明一下
--  作者:wugang0131
--  发布时间:2022/5/10 14:47:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:6yg0cqzha1w23pj%siyk6(3.png
图片点击可在新窗口打开查看

--  作者:wugang0131
--  发布时间:2022/5/10 14:47:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:8ih~ck_`wgl{9npakff6tb.png
图片点击可在新窗口打开查看

--  作者:wugang0131
--  发布时间:2022/5/10 14:50:00
--  
蓝老师请看,第一张图是“专家”表“专业”列,第二张图是“信息统计”表“专业”和“专业数量”列,关键是第一张图最后一行有两个专业,如何写代码进行统计?
--  作者:有点蓝
--  发布时间:2022/5/10 14:57:00
--  
e.DataRow("专业数量") = DataTables("专家").Compute("Count(姓名)", "\',\' +专业 +\',\' like \'%," & zy &",%\'")
--  作者:wugang0131
--  发布时间:2022/5/10 15:00:00
--  
谢谢蓝老师,搞定了,我再好好学习