Foxtable(狐表)用户栏目专家坐堂 → [求助]统计报错,生成的SQL语句错误


  共有2853人关注过本帖树形打印复制链接

主题:[求助]统计报错,生成的SQL语句错误

帅哥哟,离线,有人找我吗?
天一生水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]统计报错,生成的SQL语句错误  发帖心情 Post By:2018/9/28 12:32:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:image 1.jpg
图片点击可在新窗口打开查看

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



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/28 12:37:00 [只看该作者]

case when,是sqlserver数据库的,access数据库,用iif函数。

 

我这样测试没问题

 

Dim cn As String = "" '数据源名(空白时为内数据表)
'Dim cn As String = "swptsql"   'sql外部数据源
Dim bm As String = "统计表1"
Dim b As New SQLGroupTableBuilder(bm,"机关负责人出庭")
'b.ConnectionName = cn
b.Groups.AddDef("案号")
b.Groups.AddDef("被告")
b.Groups.AddDef("承办人")   '暂

'b.Totals.AddExp("负责人","Case When 出庭情况_负责人 =1 then 1 Else null End")
'b.Totals.AddExp("正职","Case When 出庭情况_正职 =1 then 1 Else null End")
'b.Totals.AddExp("本机关工作人员","Case When 出庭情况_本机关工作人员 =1 then 1 Else null End")
'b.Totals.AddExp("下级机关工作部门人员","Case When 出庭情况_下级机关工作部门人员 =1 then 1 Else null End")
'b.Totals.AddExp("仅下级机关工作部门人员","Case When 出庭情况_仅下级机关工作部门人员 =1 then 1 Else null End")
'b.Totals.AddExp("仅委托律师","Case When 出庭情况_仅委托律师 =1 then 1 Else null End")
'b.Totals.AddExp("仅下级机关工作部门人员和律师","Case When 出庭情况_仅下级机关工作部门人员和律师 =1 then 1 Else null End")
'b.Totals.AddExp("行政机关未经法庭许可中途退庭","Case When 出庭情况_行政机关未经法庭许可中途退庭 =1 then 1 Else null End")
'b.Totals.AddExp("无人出庭应诉","Case When 出庭情况_无人出庭应诉 =1 then 1 Else null End")
b.Subtotal = True
b.SubtotalLevel = 0
Tables("司法统计_Table1").DataSource = b.BuildDataSource

With Tables("司法统计_Table1")
    .MergeMode = MergeModeEnum.Standard '标准合并模式
    .MergeCols.Clear() '清除原来的合并列
    .MergeCols.Add("案号") '加入要合并的列
    '.MergeSort = "被告"  '设置合并模式下的排序方式
    .AllowMerge = True '启用合并模式
End With
Tables("司法统计_Table1").AutoSizeCols()  '自动列宽End If


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/10/11 21:14:00 [只看该作者]

甜老师,统计没有问题了。
有个问题,我在统计表中添加了一列“开庭时间”,想在统计表中保持数据表中的列格式(DateTime列,比如:2018-10-10 21:51),但在统计表中显示为“10”,应该怎样设置?
加上这句不行:
Tables("司法统计_Table1").Cols("开庭时间").SetDateTimeFormat(DateTimeFormatEnum.DateTime)

------------------------------------------------------------------------------
Syscmd.Project.Save()
Dim cn As String = ""    '数据源名(空白时为内数据表)
Dim bm As String = "统计表1"
Dim b As New SQLGroupTableBuilder(bm,"机关负责人出庭")
b.ConnectionName = cn
b.Groups.AddDef("案号")
b.Groups.AddDef("原告")
b.Groups.AddDef("被告")
b.Groups.AddDef("承办人")   
b.Groups.AddDef("开庭时间")
b.Groups.AddDef("出庭情况_备注","备注")

b.Groups.AddDef("出庭情况_负责人姓名职务","负责人姓名职务")
b.Totals.AddExp("负责人","iif(出庭情况_负责人 = true,1,null)")
b.Totals.AddExp("正职","iif(出庭情况_正职 = true,1,null)")
b.Totals.AddExp("副职","iif(出庭情况_副职 = true,1,null)")
b.Totals.AddExp("本机关工作人员","iif(出庭情况_本机关工作人员 = true,1,null)")
b.Totals.AddExp("下级机关工作部门人员","iif(出庭情况_下级机关工作部门人员 = true,1,null)")
b.Totals.AddExp("仅下级机关工作部门人员","iif(出庭情况_仅下级机关工作部门人员 = true,1,null)")
b.Totals.AddExp("仅委托律师","iif(出庭情况_仅委托律师 = true,1,null)")
b.Totals.AddExp("仅下级机关工作部门人员和律师","iif(出庭情况_仅下级机关工作部门人员和律师 = true,1,null)")
b.Totals.AddExp("行政机关未经法庭许可中途退庭","iif(出庭情况_行政机关未经法庭许可中途退庭 = true,1,null)")
b.Totals.AddExp("无人出庭应诉 ","iif(出庭情况_无人出庭应诉  = true,1,null)")

b.Subtotal = True
b.SubtotalLevel = 0
Tables("司法统计_Table1").DataSource  = b.BuildDataSource

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/11 21:17:00 [只看该作者]

b.Groups.AddDef("开庭时间")

 

改成

 

b.Groups.AddDef("开庭时间", DateGroupEnum.none)


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/10/11 21:35:00 [只看该作者]

谢谢甜老师!
现在可以显示为日期,比如:2018-10-10
能不能显示为原来数据表中的格式,日期时间呢?比如:2018-10-10 21:51

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/11 21:39:00 [只看该作者]

Dim b As New SQLGroupTableBuilder("统计表1","表A")
b.Groups.AddDef("第一列") '根据产品分组
b.Groups.AddDef("第四列", DateGroupEnum.none)

b.Totals.AddDef("第二列") '对数量进行统计
b.Build '生成统计表
DataTables("统计表1").DataCols("第四列").SetDateTimeFormat(DateTimeFormatEnum.DateLongTime)
MainTable = Tables("统计表1") '打开生成的统计表


 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/10/12 17:02:00 [只看该作者]

3楼的代码能不能只统计[开庭时间]是某个月的数据?不是指分组,是指筛选后的数据。
比如:后台数据[开庭时间]是10月份或11月份的统计。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/12 17:06:00 [只看该作者]

以下是引用天一生水在2018/10/12 17:02:00的发言:
3楼的代码能不能只统计[开庭时间]是某个月的数据?不是指分组,是指筛选后的数据。
比如:后台数据[开庭时间]是10月份或11月份的统计。

 

统计不是可以加条件,如

 

b.filter = "开庭时间 >= ## and 开庭时间 <= ##"


 回到顶部