标题:请教一个多类别分级汇总的SQL语句
只看楼主
Find_cpa
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-8-18
 问题点数:0 回复次数:2 
请教一个多类别分级汇总的SQL语句

目标说明: 要用一条SQL语句生成各级次的部门对应的各级次支出类别的金额情况:

数据表共涉及三个

1.部门代码表

级次 部门代码 部门名称

1 BM 总部
2 BM01 总部->生产部
2 BM02 总部->财务部

2. 支出类别代码表

级次 支出类别代码 支出类别名称

1 ZC 交通费
2 ZC01 交通费->的士费
2 ZC02 交通费->火车费

3. 支出明细表

部门编码 支出类别编码 支出金额
BM01 ZC01 100
BM01 ZC02 100
BM02 ZC01 100
BM02 ZC02 100

相生成的结果表是:

部门级次 部门编码 支出类别级次 支出类别编码 支出金额
1 BM 1 ZC 200
1 BM 2 ZC01 100
1 BM 2 ZC02 100
2 BM01 1 ZC 200
2 BM01 2 ZC01 100
2 BM01 2 ZC02 100
2 BM02 1 ZC 200
2 BM02 2 ZC01 100
2 BM02 2 ZC02 100

搜索更多相关主题的帖子: SQL 类别 语句 分级 汇总 
2007-08-18 22:13
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
得分:0 

从你的表结构来看, 很难完成这个功能. 因为你的表结构上看不出 BM是BM01的父代码, ZC是ZC01的父代码.
这种关系如果hard code写进存储过程实在是没什么意义. 而且不具有重复使用价值(你只要添加了新类别就要重新写代码)

在2个代码表里面加一个字段ParentID, 指定它的上级编码; 如果是根, 那么Parent就是Null.
然后用报表工具 (比如Crystal report) 可以很容易的建立报表


2007-08-20 10:55
xinzheng
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-7-22
得分:0 
回复:(Find_cpa)请教一个多类别分级汇总的SQL语句
select b.部门编码,a.支出类别级次,b.支出类别编码,b.支出金额 into #1 from 支出类别代码表 a,支出明细表 b where a.支出类别代码=b.支出类别编码
select a.部门级次,b.部门编码,b.支出类别级次,b.支出类别编码,b.支出金额 from 部门代码表 a,#1 b where a.部门代码=b.部门编码
drop table #1
2007-08-20 13:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-163772-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.060353 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved