Foxtable(狐表)用户栏目专家坐堂 → [求助]统计问题


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

主题:[求助]统计问题

帅哥哟,离线,有人找我吗?
有点蓝
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107604 积分:547323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/6/6 21:06:00 [只看该作者]

必须是sqlCrossTableBuilder,才能使用AddExp

Dim tbCj As Table = Tables(e.Form.Name & "_TabProjectSchedule_Cj")
Dim b As New sqlCrossTableBuilder("Cj1", "select  负责人,PlWeek as 年周,异常分类,ReYq as 达成,1 as sl from {ProjectSchedule_View}  ","数据源名称")
b.HGroups.AddDef("负责人") 
b.HGroups.AddDef("年周") 
b.VGroups.AddDef("异常分类", "异常分类_{0}") 
b.VGroups.AddExp("达成", "iif(达成 = 1,'达成','未达成')") 
b.Totals.AddDef("sl") 
b.VerticalTotal = True
tbcj.DataSource = b.BuildDataSource

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9637 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2024/6/6 21:52:00 [只看该作者]

以下是引用有点蓝在2024/6/6 21:06:00的发言:
必须是sqlCrossTableBuilder,才能使用AddExp

Dim tbCj As Table = Tables(e.Form.Name & "_TabProjectSchedule_Cj")
Dim b As New sqlCrossTableBuilder("Cj1", "select  负责人,PlWeek as 年周,异常分类,ReYq as 达成,1 as sl from {ProjectSchedule_View}  ","数据源名称")
b.HGroups.AddDef("负责人") 
b.HGroups.AddDef("年周") 
b.VGroups.AddDef("异常分类", "异常分类_{0}") 
b.VGroups.AddExp("达成", "iif(达成 = 1,'达成','未达成')") 
b.Totals.AddDef("sl") 
b.VerticalTotal = True
tbcj.DataSource = b.BuildDataSource



这样更改又会出现16楼的错误。


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


加好友 发短信
等级:超级版主 帖子:107604 积分:547323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/6/6 22:11:00 [只看该作者]

导出几个表的数据,和视图的sql发上来测试一下

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


加好友 发短信
等级:六尾狐 帖子:1326 积分:9637 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2024/6/7 11:09:00 [只看该作者]

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



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


加好友 发短信
等级:超级版主 帖子:107604 积分:547323 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/6/7 16:20:00 [只看该作者]

创建一个新的视图,视图名称:ProjectSchedule_View2,sql为

SELECT   负责人, PlWeek AS 年周, 异常分类, (CASE WHEN ReYq = 1 THEN '达成' ELSE '未达成' END) AS 达成, 
                (CASE WHEN ReYq = 1 THEN 1 ELSE NULL END) AS sl
FROM      dbo.ProjectSchedule_View
union
SELECT  distinct NUll as 负责人, null as 年周, 异常分类, (CASE WHEN ReYq = 0 THEN '达成' ELSE '未达成' END) AS 达成, 
                NULL AS sl
FROM      dbo.ProjectSchedule_View

然后生成统计表参考:
Dim b As New CrossTableBuilder("Cj2", "select * from {ProjectSchedule_View2}", "t")
b.HGroups.AddDef("负责人") 
b.HGroups.AddDef("年周") 
b.VGroups.AddDef("异常分类", "异常分类_{0}") 
b.VGroups.AddDef("达成") 
b.Totals.AddDef("sl") 
b.VerticalTotal = True
b.Build
DataTables("Cj2").DeleteFor("负责人 is null")

或者
Dim b As New sqlCrossTableBuilder("Cj1", "ProjectSchedule_View2")
b.ConnectionName = "t"
b.HGroups.AddDef("负责人") 
b.HGroups.AddDef("年周") 
b.VGroups.AddDef("异常分类", "异常分类_{0}") 
b.VGroups.AddDef("达成") 
b.Totals.AddDef("sl") 
b.VerticalTotal = True
b.Build
DataTables("Cj1").DeleteFor("负责人 is null")

 回到顶部
总数 25 上一页 1 2 3