Foxtable(狐表)用户栏目专家坐堂 → [求助]能否在交叉表的垂直分组列中增加列(已解决)


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

主题:[求助]能否在交叉表的垂直分组列中增加列(已解决)

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/11 7:11:00 [显示全部帖子]

Dim sql As String = "Select 报表年月,日期,单位,Sum(加工费) As 加工费,Sum(投工) As 投工,Sum(加工费)/Sum(投工) As 人均加工费 FROM {日报源表} WHERE Year(日期) = '" & nf & "' Group By 报表年月,日期,单位 ORDER BY 单位,日期,报表年月"

 

剩下的你应该可以自己处理了。

[此贴子已经被作者于2011-7-11 7:11:31编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/11 9:18:00 [显示全部帖子]

看看这些内容能否帮助你:
 
http://help.foxtable.com/topics/1594.htm


http://help.foxtable.com/topics/1911.htm


http://help.foxtable.com/topics/1964.htm


 
单单某列环比是不可以的,你可以分成两个或多个统计,然后将多个统计结果组合在一起:

http://help.foxtable.com/topics/2305.htm


 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/11 10:05:00 [显示全部帖子]

我也没有办法,先得到基本统计结果,然后自己编码增加列和计算统计结果。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/12 8:46:00 [显示全部帖子]

先查看表结构,看看到底是否有名为j的列。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/12 9:15:00 [显示全部帖子]

问题出现在以下加粗的部分:

 

r.DataTable.DataCols.Add( k4 & j , Gettype(Double),"iif((j-1)=0,null,"& k3 & j &"/"& k3 & (j-1) &")") 

 

j是一个变量,合成的表达式中不能直接出现字符j的。

 

你应该:

 

 

if j-1 = 0 Then

    r.DataTable.DataCols.Add( k4 & j , Gettype(Double))

else

    r.DataTable.DataCols.Add( k4 & j , Gettype(Double), k3 & j &"/"& k3 & (j-1) &")")

end if


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/12 10:57:00 [显示全部帖子]

你可以根据标题取得列名,逐列判断表中的列,如果标题符合,就取此列。
新增列可以用move移动位置:

CurrentTable.Cols("日期").Move(0)

 

动态设置标题:

http://help.foxtable.com/topics/1275.htm

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/12 14:05:00 [显示全部帖子]

说实话,我没有明白你的意思。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/12 14:49:00 [显示全部帖子]

For Each c As col In Tables("统计表").Cols
    If c.caption.EndsWith("_加工费") AndAlso c.caption.StartsWith("合计_") Then
        output.show(c.name)
        output.show(c.caption)
        output.show(c.name.SubString(0,c.name.IndexOf("_")))
    End If
Next

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/12 16:52:00 [显示全部帖子]

Y版出马,楼主有福了。

 

图片点击可在新窗口打开查看


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/7/20 7:56:00 [显示全部帖子]

可能某个值太大,超出了integer的范围,请先找出出错代码是哪一行,然后再考虑解决方法。

 


 回到顶部
总数 16 1 2 下一页