以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎么将统计表合在一起  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122171)

--  作者:紫色幽魂
--  发布时间:2018/7/20 10:05:00
--  [求助]怎么将统计表合在一起
是后台数据统计
Dim rq As Date = e.Form.Controls("每日车间日期").Value
\'首次检测量
Dim cx As New SQLGroupTableBuilder("车间班组统计","无损_检测明细")
cx.C
Dim dt As fxDataSource
cx.Groups.AddDef("首检_检测日期",DateGroupEnum.None,"检测日期")
cx.Groups.AddDef("地点","检测地点")
cx.Groups.AddDef("检测方法")
cx.Groups.AddDef("车间")
cx.Groups.AddDef("班组")
cx.Totals.AddDef("首检_检测长度","检测量")
cx.Totals.AddDef("首检_返修长度","返修量")
\'cx.VerticalTotal = True
cx.Filter = "首检_检测日期 = \'" & rq & "\'"
dt = cx.BuildDataSource()
\'cx.Build

\'一次复检量
Dim cx1 As New SQLGroupTableBuilder("车间班组统计","无损_检测明细")
cx1.C
Dim dt1 As fxDataSource
cx1.Groups.AddDef("首检_检测日期",DateGroupEnum.None,"检测日期")
cx1.Groups.AddDef("地点","检测地点")
cx1.Groups.AddDef("检测方法")
cx1.Groups.AddDef("车间")
cx1.Groups.AddDef("班组")
cx1.Totals.AddDef("一次复检_检测长度","检测量")
cx1.Totals.AddDef("一次复检_返修长度","返修量")
\'cx1.VerticalTotal = True
cx1.Filter = "一次复检_检测日期 = \'" & rq & "\'"
dt1 = cx1.BuildDataSource()
\'cx1.Build

\'二次复检量
Dim cx2 As New SQLGroupTableBuilder("车间班组统计","无损_检测明细")
cx2.C
Dim dt2 As fxDataSource
cx2.Groups.AddDef("首检_检测日期",DateGroupEnum.None,"检测日期")
cx2.Groups.AddDef("地点","检测地点")
cx2.Groups.AddDef("检测方法")
cx2.Groups.AddDef("车间")
cx2.Groups.AddDef("班组")
cx2.Totals.AddDef("二次复检_检测长度","检测量")
cx2.Totals.AddDef("二次复检_返修长度","返修量")
\'cx2.VerticalTotal = True
cx2.Filter = "二次复检_检测日期 = \'" & rq & "\'"
dt2 = cx2.BuildDataSource()
\'cx2.Build


Tables("无损查询表_Table1").DataSource  = cx.BuildDataSource() \'绑定窗口表

[此贴子已经被作者于2018/7/20 10:07:14编辑过]

--  作者:有点甜
--  发布时间:2018/7/20 10:09:00
--  

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

 

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

 


--  作者:紫色幽魂
--  发布时间:2018/7/20 11:05:00
--  回复:(有点甜)http://www.foxtable.com/webhelp/sc...
不想增加列,这几个列的名称都是一样的,我想将这几个相同名称的列的数据根据列内容相同就合在一起,进行求和
--  作者:有点甜
--  发布时间:2018/7/20 11:22:00
--  

方法一:生成之后filler到一张表里面

 

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

 

方法二:为什么不直接计算就好了?把3列的长度的值直接求和,然后再统计不就好了?

 

Dim cx As New SQLGroupTableBuilder("车间班组统计","无损_检测明细")
cx.Groups.AddDef("首检_检测日期",DateGroupEnum.None,"检测日期")
cx.Groups.AddDef("地点","检测地点")
cx.Groups.AddDef("检测方法")
cx.Groups.AddDef("车间")
cx.Groups.AddDef("班组")
cx.Totals.AddExp("检测量", "首检_检测长度+一次复检_检测长度+一次复检_检测长度")
\'cx.VerticalTotal = True
cx.Build


--  作者:紫色幽魂
--  发布时间:2018/7/20 11:30:00
--  回复:(有点甜)方法一:生成之后filler到一张表里面...
方法二:不能直接统计在一起,因为是按照日期来筛选的,每个日期对应的数据不同,所以不能直接统计在一起
--  作者:有点甜
--  发布时间:2018/7/20 12:02:00
--  
以下是引用紫色幽魂在2018/7/20 11:30:00的发言:
方法二:不能直接统计在一起,因为是按照日期来筛选的,每个日期对应的数据不同,所以不能直接统计在一起

 

条件不是可以改成?

 

cx.Filter = "首检_检测日期 = \'" & rq & "\' or 二次复检_检测日期=\'" & rq & "\' or 一次复检_检测日期=\'" & rq & "\'"


--  作者:紫色幽魂
--  发布时间:2018/7/20 12:15:00
--  回复:(有点甜)以下是引用紫色幽魂在2018/7/20 11:3...
首检,一次复检和二次复检的筛选条件不一样,取值也是不一样的,以首检日期来算,那么取值列的名称是首检_检测长度,首检_返修长度,如果是一次复检日期作为筛选条件,取值列是一次复检_检测长度,一次复检_返修长度
我用的是数据库,数据未加载出来的,上传的这个列子是数据在内部表且全部加载了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table



--  作者:有点甜
--  发布时间:2018/7/20 12:40:00
--  

用sql语句做,参考,条件where自己加上,统计再做一次分组统计

 

select 首检_检测日期,地点,检测方法, 首检_检测长度 from {无损_检测明细} union all
select 首检_检测日期,地点,检测方法,一次复检_检测长度 from {无损_检测明细} union all
select 首检_检测日期,地点,检测方法,二次复检_检测长度 from {无损_检测明细}

 

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