以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]查询与赋值并存 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=105726) |
-- 作者:lgj716330 -- 发布时间:2017/8/25 9:14:00 -- [求助]查询与赋值并存 Dim Dic1,Dic2,Dic2 As new Dictionary(of DataRow, Integer) Dim v1,v2,v3 As Double For Each dr As DataRow In DataTables("表A").DataRows v1 = DataTables("表A").Compute("Count(第二列 )", "第二列 = " & dr("第一列")) v2 = DataTables("表A").Compute("Count(第三列 )", "第三列 = " & dr("第一列")) v3 = DataTables("表A").Compute("Count(第四列 )", "第四列 = " & dr("第一列")) dic1.Add(dr, v1) dic2.Add(dr, v2) dic3.Add(dr, v3) Next For Each dr As DataRow In dic1.Keys dr("第五列") = dic1(dr) Next For Each dr As DataRow In dic2.Keys dr("第六列") = dic2(dr) Next For Each dr As DataRow In dic3.Keys dr("第七列") = dic3(dr) Next 上述代码还可以整得简洁点吗
[此贴子已经被作者于2017/8/25 9:19:19编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/8/25 9:21:00 -- 上传实例,直接说明你要实现的功能。 |
-- 作者:lgj716330 -- 发布时间:2017/8/25 9:30:00 -- Dim Dic1,Dic2,Dic3 As new Dictionary(of DataRow, Integer) Dim v1,v2,v3 As Double For Each dr As DataRow In DataTables("日报表").DataRows v1 = DataTables("销售日报").SQLCompute("sum(销售数量)", "[日期] = \'" & dr("日期") & "\' and [店铺名称] = \'" & dr("店铺名称") & "\'") v2 = DataTables("销售日报").SQLCompute("sum(销售金额)", "[日期] = \'" & dr("日期") & "\' and [店铺名称] = \'" & dr("店铺名称") & "\'") v3 = DataTables("销售日报").SQLCompute("sum(销售成本)", "[日期] = \'" & dr("日期") & "\' and [店铺名称] = \'" & dr("店铺名称") & "\'") dic1.Add(dr, v1) dic2.Add(dr, v2) dic3.Add(dr, v3) Next For Each dr As DataRow In dic1.Keys dr("销售数量") = dic1(dr) Next For Each dr As DataRow In dic2.Keys dr("销售金额") = dic2(dr) Next For Each dr As DataRow In dic3.Keys dr("销售成本") = dic3(dr) Next 哦,上面代码能实现我需要的功能,只是我要赋值的例比较多的时候,这代码有点长,看能不能弄得简洁一点
[此贴子已经被作者于2017/8/25 9:29:47编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/8/25 9:39:00 -- 1、不要频繁使用sqlCompute,这样效率低下;还不如先把要统计的数据加载出来或先统计出来,再查找。
2、
Dim ary() As String = {"销售数量", "销售金额", "销售成本"} |
-- 作者:lgj716330 -- 发布时间:2017/8/25 9:57:00 -- 确实,用sqlCompute速度很慢,我再偿试下先加载再计算 |