Foxtable(狐表)用户栏目专家坐堂 → [求助]垂直表和水平表的转换


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

主题:[求助]垂直表和水平表的转换

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


加好友 发短信
等级:一尾狐 帖子:404 积分:5048 威望:0 精华:0 注册:2015/4/30 15:42:00
[求助]垂直表和水平表的转换  发帖心情 Post By:2017/3/7 22:53:00 [只看该作者]


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

图片点击可在新窗口打开查看此主题相关图片如下:表2.png
图片点击可在新窗口打开查看

如何将垂直表“订单”转化成水平表“表B”?并且要求同一天同一客户同一产品实现累计功能。


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


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

直接做交叉统计即可:http://www.foxtable.com/webhelp/scr/0165.htm

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


加好友 发短信
等级:一尾狐 帖子:404 积分:5048 威望:0 精华:0 注册:2015/4/30 15:42:00
  发帖心情 Post By:2017/3/7 23:02:00 [只看该作者]

交叉统计是临时表,我要的不是临时表,并且考虑到以后的实际应用,可能增加一列统计“PD01+PD02"或"PD01+PD02+PD03”的数量
[此贴子已经被作者于2017/3/7 23:06:41编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/7 23:07:00 [只看该作者]


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


加好友 发短信
等级:一尾狐 帖子:404 积分:5048 威望:0 精华:0 注册:2015/4/30 15:42:00
  发帖心情 Post By:2017/3/7 23:16:00 [只看该作者]

我的意思是能否通过狐表“垂直表和水平表的转换”这一节帮助文件,增加相应其他代码来实现

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


加好友 发短信
等级:一尾狐 帖子:404 积分:5048 威望:0 精华:0 注册:2015/4/30 15:42:00
  发帖心情 Post By:2017/3/7 23:46:00 [只看该作者]

Dim dtb As New DataTableBuilder("表B")
dtb.AddDef("日期",Gettype(Date))
dtb.AddDef("客户",Gettype(String),10)
For Each v As String In DataTables("订单").GetValues("产品")
    dtb.AddDef(v, Gettype(Double))
Next
dtb.Build()
For Each v As String() In DataTables("订单").GetValues("日期|客户")
    Dim dr1 As DataRow = DataTables("表B").AddNew()
    dr1("日期") = v(0)
    dr1("客户") = v(1)
    For Each dr2 As DataRow In DataTables ("订单").Select("日期 = '" & v(0) & "' And 客户 = '" & v(1) & "'")
        dr1(dr2("产品")) = dr2("数量")
    Next
Next
MainTable = Tables("表B")
请教上面代码如何修改增加“同一天同一客户同一产品实现累计功能

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


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

Dim dtb As New DataTableBuilder("表B")
dtb.AddDef("日期",Gettype(Date))
dtb.AddDef("客户",Gettype(String),10)
For Each v As String In DataTables("订单").GetValues("产品")
    dtb.AddDef(v, Gettype(Double))
Next
dtb.Build()
For Each v As String() In DataTables("订单").GetValues("日期|客户")
    Dim dr1 As DataRow = DataTables("表B").AddNew()
    dr1("日期") = v(0)
    dr1("客户") = v(1)
    Dim filter As String = "日期 = '" & v(0) & "' And 客户 = '" & v(1) & "'"
    For Each v1 As String In DataTables("订单").GetValues("产品",filter)
        dr1(v1) = DataTables("订单").Compute("Sum(数量)",filter & " and 产品='" & v1 & "'")
    Next
Next
MainTable = Tables("表B")

 回到顶部