以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  GroupTableBuilder统计表中获取最大最小日期  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=174963)

--  作者:tld
--  发布时间:2022/2/13 20:37:00
--  GroupTableBuilder统计表中获取最大最小日期

老师好。在统计表中,能否直接获取最大日期、最小日期?谢谢!

Dim cmd As new SQLCommand

cmd.C
cmd.CommandText = "sele ct [_identify],单位,订单号,日期 from {订单流水}"\' where 日期 >= \'" &  t1 & "\' And 日期 <= \'" & t2 &"\'"
Dim dt As DataTable = cmd.ExecuteReader(True)

Dim b1 As New GroupTableBuilder("统计表1",dt)

b1.Groups.AddDef("单位") \'
b1.Totals.AddDef("最小日期") \'
b1.Totals.AddDef("最大日期") \'
b1.Build \'生成统计表
[此贴子已经被作者于2022/2/13 20:41:52编辑过]

--  作者:有点蓝
--  发布时间:2022/2/13 20:45:00
--  

在Totals集合中添加一个统计列的语法如下: 

Totals.AddDef(Name)
Totals.AddDef(Name, NewName)
Totals.AddDef(Name, NewName, NewCaption)
Totals.AddDef(Name, Aggregate)
Totals.AddDef(Name, Aggregate, NewName)
Totals.AddDef(Name, Aggregate, NewName, NewCaption)

参数说明 

Name:        字符型,指定统计列。
NewName:     字符型,用于给统计列指定一个新的名称,这个名称在统计表中显示。
NewCaption:  字符型,用于给统计列设置标题。
Aggregate:  AggregateEnum枚举型,用于指定统计类型,默认是求和。

AggregateEnum型枚举的可选值:

Average:平均值
Count:  记录数
Max:    最大值
Min:    最小值
Sum:    累积值


--  作者:tld
--  发布时间:2022/2/13 21:02:00
--  

老师,添加代码:  b1.Totals.AddDef("日期",AggregateEnum.min,"最大日期")   后,
         生成如下错误:从类型“Date”到类型“Decimal”的转换无效。

--  作者:有点蓝
--  发布时间:2022/2/13 21:27:00
--  
嗯,这个只能是数值列。没有办法,只能直接使用sql统计

cmd.CommandText = "select 单位,max(日期) as 最大日期,min(日期) as 最小日期 from {订单流水} where 日期 >= \'" &  t1 & "\' And 日期 <= \'" & t2 &"\' group by 单位"
Dim dt As DataTable = cmd.ExecuteReader()

dt就是统计表,不需要在使用GroupTableBuilder