以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求调拨汇总  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=50720)

--  作者:lihe60
--  发布时间:2014/5/12 9:06:00
--  求调拨汇总

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

 

分公司     购入     调入      调出

甲            2                8 

乙                                              8   

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


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

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


--  作者:Bin
--  发布时间:2014/5/12 9:28:00
--  
那到底是要调入还是要调出?
--  作者:Bin
--  发布时间:2014/5/12 9:29:00
--  
还有调出是怎么回事?  问题描述都不清楚.
--  作者:lihe60
--  发布时间:2014/5/12 10:27:00
--  

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

 

分公司     购入     调入      调出

甲            2              8 

乙                                           8   

 

 

附件在1楼

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

--  作者:Bin
--  发布时间:2014/5/12 10:28: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
--  发布时间:2014/5/12 10:31:00
--  
图片点击可在新窗口打开查看
要生成这样的报表。

--  作者:lihe60
--  发布时间: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

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