请教各位达人,这种sql该怎么写

[复制链接]
查看11 | 回复9 | 2005-10-9 14:31:29 | 显示全部楼层 |阅读模式
有这么一个表TMP,有这三个字段及内容如下
FSDW (发送单位) DDDW到达单位)SL(数量)
---------------------------------------------------------------------------
哈局
哈局
5
哈局
济局
15
哈局
沈局
20
济局
哈局
25
济局
济局
30
济局
沈局
35
沈局
哈局
40
沈局
济局
45
沈局
沈局
50
通过这个表,是实现下面这种形式的报表
发单位 到单位 数量
------ ----- -----
哈局 哈局 5
哈局 济局 15
哈局 沈局 20
哈局 发往外局 35
济局 哈局 25
济局 济局 30
济局 沈局 35
济局 发往外局 60
沈局 哈局 40
沈局 济局 45
沈局 沈局 50
沈局 发往外局 85
外局到达 哈局 65
外局到达 济局 60
外局到达 沈局 55
出入超 哈局 30
出入超 济局 0
出入超 沈局 -30发往外局表示,本单位发到外单位数量
外局到达表示,外单位发到本单位的数量
出入超为外局到达-发往外局
请问实现这个查询结果sql该怎么写,谢谢各位
回复

使用道具 举报

千问 | 2005-10-9 14:31:29 | 显示全部楼层
有这么一个表TMP,有这三个字段及内容如下
FSDW (发送单位) DDDW到达单位)SL(数量)
---------------------------------------------------------------------------
哈局
哈局
5
哈局
济局
15
哈局
沈局
20
济局
哈局
25
济局
济局
30
济局
沈局
35
沈局
哈局
40
沈局
济局
45
沈局
沈局
50
通过这个表,是实现下面这种形式的报表
到达发送
哈局
济局
沈局
发往外局
哈局
5
15
20
35
济局
25
30
35
60
沈局
40
45
50
85
外局到达
65
60
55
180
出入超
30
0
-30

发往外局表示,本单位发到外单位数量
外局到达表示,外单位发到本单位的数量
出入超为外局到达-发往外局
请问实现这个查询结果sql该怎么写,谢谢各位
回复

使用道具 举报

千问 | 2005-10-9 14:31:29 | 显示全部楼层
一个SQL搞定?



回复

使用道具 举报

千问 | 2005-10-9 14:31:29 | 显示全部楼层
不一定非要一个SQL,可以说一种解决方式
回复

使用道具 举报

千问 | 2005-10-9 14:31:29 | 显示全部楼层
我觉得用sql 来解决这种问题实在是没有什么意义,这种sql 就是写出来也没几个人看得懂,维护成问题的。
用procedure来处理要简单得多,便于以后的维护
如果数据量不大,全部查到web服务器上,由应用程序来处理也是一样的。
回复

使用道具 举报

千问 | 2005-10-9 14:31:29 | 显示全部楼层
问题关键就在这了,我们这个项目用的是oracle的数据库,老兄你也知道
oracle数据库的存储过程不支持返回数据集合,
另一方面,我这个是一个报表,要用报表服务器来展现
回复

使用道具 举报

千问 | 2005-10-9 14:31:29 | 显示全部楼层
存储过程可以返回数据集合吧


回复

使用道具 举报

千问 | 2005-10-9 14:31:29 | 显示全部楼层
肯定可以返回数据集,在论坛上搜一下吧,多呢
回复

使用道具 举报

千问 | 2005-10-9 14:31:29 | 显示全部楼层
又是行列转换, 难道真的那么难理解吗


回复

使用道具 举报

千问 | 2005-10-9 14:31:29 | 显示全部楼层
不光是行列转换,关键是外往外局这一列,还有外局到达和出入超这两行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行