Foxtable(狐表)用户栏目专家坐堂 → 求调拨汇总


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

主题:求调拨汇总

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


加好友 发短信
等级:狐神 帖子:6875 积分:43518 威望:0 精华:0 注册:2009/3/2 14:07:00
求调拨汇总  发帖心情 Post By:2014/5/12 9:06:00 [显示全部帖子]

如果单据为“购入”,表示购入公司是从其他客户购买,如果单据为“调拨”,是表示从“购入公司”调拨至“调入公司”。现在要生成购入、调出、调入的汇总数。求用SQL代码生成下面报表的代码。

 

分公司     购入     调入      调出

甲            2                8 

乙                                              8   

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.rar


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


加好友 发短信
等级:狐神 帖子:6875 积分:43518 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2014/5/12 9:22:00 [显示全部帖子]

以下是引用Bin在2014-5-12 9:11:00的发言:
分公司  这个列,要显示的是什么内容?  购入公司列? 调入公司列?

分公司列包括调入分公司和调出分公司的。


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


加好友 发短信
等级:狐神 帖子:6875 积分:43518 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2014/5/12 10:27:00 [显示全部帖子]

第一列表示甲分公司直接购入2;第二列表示甲分公司从乙分公司调入3;;第二列表示甲分公司从乙分公司调入5.要生成

 

分公司     购入     调入      调出

甲            2              8 

乙                                           8   

 

 

附件在1楼

[此贴子已经被作者于2014-5-12 10:27:03编辑过]

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


加好友 发短信
等级:狐神 帖子:6875 积分:43518 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2014/5/12 10:31:00 [显示全部帖子]

图片点击可在新窗口打开查看
要生成这样的报表。

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


加好友 发短信
等级:狐神 帖子:6875 积分:43518 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2014/5/12 10:35:00 [显示全部帖子]

以下是引用有点甜在2014-5-12 10:30:00的发言:

 用下面的代码,关键,是还原这张表,建议红色代码做一个视图,或临时表,因为是重复的。

 

select 分公司, (select sum(数量) from
(select 购入公司 as 分公司, 单据, "购入" as 性质, 数量 from {表A}  where 购入公司
union all
select 调入公司 as 分公司, 单据, "调入" as 性质, 数量 from {表A} where 调入公司) as a where a.分公司 = b.分公司 and 单据 = '购入') as 购入
,
(select sum(数量) from
(select 购入公司 as 分公司, 单据, "购入" as 性质, 数量 from {表A}  where 购入公司
union all
select 调入公司 as 分公司, 单据, "调入" as 性质, 数量 from {表A} where 调入公司) as a where a.分公司 = b.分公司 and 单据 = '调拨' and 性质='购入') as 调入,
 (select sum(数量) from
(select 购入公司 as 分公司, 单据, "购入" as 性质, 数量 from {表A}  where 购入公司
union all
select 调入公司 as 分公司, 单据, "调入" as 性质, 数量 from {表A} where 调入公司) as a where a.分公司 = b.分公司 and 单据 = '调拨' and 性质 = '调入') as 调出
from
(select 购入公司 as 分公司 from {表A}  where 购入公司
union
select 调入公司 as 分公司 from {表A} where 调入公司) as b

有点甜真是高手,代码能短些就更好了。


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


加好友 发短信
等级:狐神 帖子:6875 积分:43518 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2014/5/12 21:45:00 [显示全部帖子]

以下是引用don在2014-5-12 15:59:00的发言:
SQL和狐表结婚:

Dim s1, sql As String
Dim  v1(),v2(),v3()  As  String
v1 ="购入公司@购入公司@调入公司".split("@")
v2 ="购入@调入@调出".split("@")
v3 ="购入@调拨@调拨".split("@")
s1 =" union all Select T1 As 分公司, 'T2' As 性质, 数量 from {表A} Where  单据 ='T3'"

For  n1 As Integer =  0 To v1.Length-1
    sql+= s1.Replace("T1",v1(n1)).Replace("T2",v2(n1)).Replace("T3",v3(n1))
Next

Dim b As New CrossTableBuilder("统计表",sql.SubString(11))
b.HGroups.AddDef("分公司")
b.VGroups.AddDef("性质")
b.Totals.AddDef("数量")
b.Build()

MainTable = Tables("统计表")

代码运行了一下,好像还有点小问题。


 回到顶部