以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助:在统计中增加条件  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=132664)

--  作者:cxmxjwlmq
--  发布时间:2019/3/27 0:48:00
--  求助:在统计中增加条件

各位老师:我想在统计时,在统计列时增加一个条件,但代码怎么也写不上,

 

Dim a1 As New SQLCrossTableBuilder("统计表1","制造质量管理")
Dim ta1 As DataTable
a1.C
a1.Filter = "直行辅助 Like \'%检\' And 日期>=\'" & e.form.controls("DateTimePicker6").Value & "\' And 日期<=\'" & e.form.controls("DateTimePicker1").Value & "\'"
a1.HGroups.AddDef("直行辅助")  \'添加客户列用于水平分组
a1.VGroups.AddDef("日期","{0}月")  \'添加日期列用于垂直分组,按月分组
a1.Totals.AddDef("状态",AggregateEnum.Count)  \'         对状态列中的报工进行计数,这里能加一个条件吗?

a1.Totals.AddDef("判定",AggregateEnum.Count)  \'         对判定列中的合格进行计数,这里能加一个条件吗?
a1.HorizontalTotal = True
ta1 = a1.Build() \'生成一个DataTable

 

我想要的效果是:当直行辅助列包涵检时,日期在变量间,对状态列中“报工”进行计数,对判定列中的合格进行计数!

 

请老师费心,谢谢指教!


--  作者:y2287958
--  发布时间:2019/3/27 8:21:00
--  
a1.Totals.AddExp("状态","iif(状态=\'报工\',1,0)")
--  作者:cxmxjwlmq
--  发布时间:2019/3/27 11:15:00
--  
 

谢谢,我用的是SQL Server数据源,二楼指导用不上.

 

Dim a1 As New SQLCrossTableBuilder("统计表1","制造质量管理")

Dim ta1 As DataTable

a1.C

a1.Filter = "直行辅助 Like \'%检\' And 日期>=\'" & e.form.controls("DateTimePicker6").Value & "\' And 日期<=\'" & e.form.controls("DateTimePicker1").Value & "\'"

a1.HGroups.AddDef("直行辅助")  \'添加客户列用于水平分组

a1.VGroups.AddDef("日期","{0}月")  \'添加日期列用于垂直分组,按月分组

a1.Totals.AddDef("状态",AggregateEnum.Count)  \'         对状态列中的报工进行计数,这里能加一个条件吗?

a1.Totals.AddDef("判定",AggregateEnum.Count)  \'         对判定列中的合格进行计数,这里能加一个条件吗?

a1.HorizontalTotal = True

ta1 = a1.Build() \'生成一个DataTable

 

我在帮助里找到这组代码修改如下:

Dim b As New SQLGroupTableBuilder("统计表1","制造质量管理")

b.C

b.Groups.Adddef("直行辅助")

b.Totals.Addexp("状态", "Case When 直行辅助 = 总检 Then 状态 = 报工  Else 0 End")

b.Totals.Addexp("判定", "Case When 直行辅助 = 总检 Then 判定 = 合格  Else 0 End")

b.Build()

MainTable = Tables("统计表1")

 

但运行时提示如图:

 

请各位老师费心给指导一下!谢谢


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

--  作者:有点甜
--  发布时间:2019/3/27 11:17:00
--  

改成比如

 

a1.Totals.AddExp("状态","case when 状态=\'报工\' then 1 Else 0 End")


--  作者:cxmxjwlmq
--  发布时间:2019/3/27 11:49:00
--  

谢谢老师指教!


--  作者:cxmxjwlmq
--  发布时间:2019/3/27 13:07:00
--  

各位老师:我想在每个数据后面增加一列,得出每个月的合格率,但第三句代码不对,提示

a1.Totals.AddExp("状态","case when 状态=\'报工\' or 状态=\'入库\'then 1 Else 0 End")
a1.Totals.AddExp("判定","case when 判定=\'合格\' then 1 Else 0 End")

a1.Totals.AddExp("合格率","判定/状态")    我想是:增加合格率列,算法是判定/状态,但提示如下图

 

请老师给看看!

谢谢!


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

--  作者:有点甜
--  发布时间:2019/3/27 13:09:00
--  

生成统计表格以后,再动态添加表达式列

 

http://www.foxtable.com/webhelp/scr/1428.htm

 


--  作者:cxmxjwlmq
--  发布时间:2019/3/27 15:54:00
--  

谢谢甜老师指教!