以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  非自然月的交叉统计,找不到错在哪里了  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=74421)

--  作者:2
--  发布时间:2015/9/10 16:12:00
--  非自然月的交叉统计,找不到错在哪里了
Dim g As New sqlCrossTableBuilder("统计表1", "加油申请表")
g.C 
g.AddTable("加油申请表","牌照号","车辆基本信息表","牌照号")
g.HGroups.AddDef("{车辆基本信息表}.车型")
g.HGroups.AddDef("牌照号")
g.VGroups.AddExp("年","Year(iif(Day(日期)> 25,DateAdd(\'d\',6,日期),日期))")
g.VGroups.AddExp("月","Month(iif(Day(日期)> 25,DateAdd(\'d\',6,日期),日期))")
g.Totals.AddDef("数量", "数量")
g.Build()
MainTable = Tables("统计表1")

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计示例.zip

[此贴子已经被作者于2015/9/10 16:13:07编辑过]

--  作者:2
--  发布时间:2015/9/10 16:18:00
--  
在统计设置里,能查看代码,如果也能查看生成的sql语句就更好了!!
--  作者:大红袍
--  发布时间:2015/9/10 16:43:00
--  

方法一:

 

Dim g As New sqlCrossTableBuilder("统计表1", "加油申请表")
g.ConnectionName = "sqldb"
g.AddTable("加油申请表","牌照号","车辆基本信息表","牌照号")
g.HGroups.AddDef("{车辆基本信息表}.车型")
g.HGroups.AddDef("{加油申请表}.牌照号")
g.VGroups.AddExp("年","Year(iif(Day(日期)> 25,DateAdd(\'d\',6,日期),日期))")
g.VGroups.AddExp("月","Month(iif(Day(日期)> 25,DateAdd(\'d\',6,日期),日期))")
g.Totals.AddDef("数量", "数量")
g.Build()
MainTable = Tables("统计表1")

 

方法二:

 

Dim sql As String = "select *,Year(iif(Day(日期)> 25,DateAdd(\'d\',6,日期),日期)) as 年, Month(iif(Day(日期)> 25,DateAdd(\'d\',6,日期),日期)) as 月 f rom {加油申请表} a left join {车辆基本信息表} b on a.牌照号 = b.牌照号"
Dim g As New CrossTableBuilder("统计表1", sql, "sqldb")
g.HGroups.AddDef("车型")
g.HGroups.AddDef("a.牌照号", "牌照号")
g.VGroups.AddDef("年")
g.VGroups.AddDef("月")
g.Totals.AddDef("数量", "数量")
g.Build()
MainTable = Tables("统计表2")