SQL 超难的问题,请高手帮助写存储过程,谢谢
问题如下:
1,有两个表,一个是“项目结构表”,别一个是“项目资金表”,只写出了关键字段
项目结构表
PROJECT_ID PROJECT_PRENT PROJECT_NAME
PM200801 0 XX软件项目
PM200801-01 PM200801 市场费用
PM200801-02 PM200801 商务费用
PM200801-03 PM200801 开发费用
PM200801-04 PM200801 其它费用
PM200801-01-01 PM200801-01 市场开拓费用
PM200801-01-02 PM200801-01 出差费用
PM200801-01-03 PM200801-01 广告费用
PM200801-01-04 PM200801-01 人员补偿费用
PM200801-01-05 PM200801-01 送礼(灰色)费用
PM200801-02-01 PM200801-02 请客吃饭费用
PM200801-02-02 PM200801-02 出差费用
PM200801-02-03 PM200801-02 员工提成费用
PM200801-02-04 PM200801-02 人员补偿费用
PM200801-03-01 PM200801-03 调研费用
PM200801-03-02 PM200801-03 技术支持费用
PM200801-03-03 PM200801-03 开发提成费用
PM200801-03-04 PM200801-03 生活补贴费用
项目资金表
PROJECT_ID PROJECT_CASE
PM200801-01-01 100000
PM200801-01-02 200000
PM200801-01-03 300000
PM200801-01-04 400000
PM200801-02-04 500000
PM200801-02-03 600000
PM200801-03-01 700000
2,通过存储过程得到一张查询结果表(因每个项目的子项目的级数不限3-10层,子项目数量在2000-10000之间)
显示结果数字如下:
PROJECT_ID PROJECT_CASE PROJECT_NAME
PM200801 2800000 XX软件项目
PM200801-01 1000000 市场费用
PM200801-01-01 100000 市场开拓费用
PM200801-01-02 200000 出差费用
PM200801-01-03 300000 广告费用
PM200801-01-04 400000 人员补偿费用
PM200801-01-05 0 送礼(灰色)费用
PM200801-02 1100000 商务费用
PM200801-02-01 0 请客吃饭费用
PM200801-02-02 0 出差费用
PM200801-02-03 600000 员工提成费用
PM200801-02-04 500000 人员补偿费用
PM200801-03 700000 开发费用
PM200801-03-01 700000 调研费用
PM200801-03-02 0 技术支持费用
PM200801-03-03 0 开发提成费用
PM200801-03-04 0 生活补贴费用
PM200801-04 0 其它费用
3,说明:
1)“项目结构表”中PROJECT_ID是关键字,有唯一,但没有索引,查询出来的结果要求排序处理
2)里面关键的地方就是金额的累加,是一层一层的累加,金额只有最后一级子项目才有金额,其它层没有,最后一级子项目的金额要一层一层的累加到上一级。
谢谢大家,也希望得到大家的帮助
1,有两个表,一个是“项目结构表”,别一个是“项目资金表”,只写出了关键字段
项目结构表
PROJECT_ID PROJECT_PRENT PROJECT_NAME
PM200801 0 XX软件项目
PM200801-01 PM200801 市场费用
PM200801-02 PM200801 商务费用
PM200801-03 PM200801 开发费用
PM200801-04 PM200801 其它费用
PM200801-01-01 PM200801-01 市场开拓费用
PM200801-01-02 PM200801-01 出差费用
PM200801-01-03 PM200801-01 广告费用
PM200801-01-04 PM200801-01 人员补偿费用
PM200801-01-05 PM200801-01 送礼(灰色)费用
PM200801-02-01 PM200801-02 请客吃饭费用
PM200801-02-02 PM200801-02 出差费用
PM200801-02-03 PM200801-02 员工提成费用
PM200801-02-04 PM200801-02 人员补偿费用
PM200801-03-01 PM200801-03 调研费用
PM200801-03-02 PM200801-03 技术支持费用
PM200801-03-03 PM200801-03 开发提成费用
PM200801-03-04 PM200801-03 生活补贴费用
项目资金表
PROJECT_ID PROJECT_CASE
PM200801-01-01 100000
PM200801-01-02 200000
PM200801-01-03 300000
PM200801-01-04 400000
PM200801-02-04 500000
PM200801-02-03 600000
PM200801-03-01 700000
2,通过存储过程得到一张查询结果表(因每个项目的子项目的级数不限3-10层,子项目数量在2000-10000之间)
显示结果数字如下:
PROJECT_ID PROJECT_CASE PROJECT_NAME
PM200801 2800000 XX软件项目
PM200801-01 1000000 市场费用
PM200801-01-01 100000 市场开拓费用
PM200801-01-02 200000 出差费用
PM200801-01-03 300000 广告费用
PM200801-01-04 400000 人员补偿费用
PM200801-01-05 0 送礼(灰色)费用
PM200801-02 1100000 商务费用
PM200801-02-01 0 请客吃饭费用
PM200801-02-02 0 出差费用
PM200801-02-03 600000 员工提成费用
PM200801-02-04 500000 人员补偿费用
PM200801-03 700000 开发费用
PM200801-03-01 700000 调研费用
PM200801-03-02 0 技术支持费用
PM200801-03-03 0 开发提成费用
PM200801-03-04 0 生活补贴费用
PM200801-04 0 其它费用
3,说明:
1)“项目结构表”中PROJECT_ID是关键字,有唯一,但没有索引,查询出来的结果要求排序处理
2)里面关键的地方就是金额的累加,是一层一层的累加,金额只有最后一级子项目才有金额,其它层没有,最后一级子项目的金额要一层一层的累加到上一级。
谢谢大家,也希望得到大家的帮助
...全文
相关推荐
sql存储过程帮助文档
sql存储过程帮助文档!!!!!!!!!!!!
SQL Server中存储过程比直接运行SQL语句慢的原因
SQL Server中存储过程比直接运行SQL语句慢的原因
SQL中存储过程中SQL语句的单引号和双引号问题[总结].pdf
SQL中存储过程中SQL语句的单引号和双引号问题[总结].pdf
自己写的sql语句(存储过程、视图、数据库、表等的创建)
存储过程的创建,数据库的创建,表的创建,视图的创建,是很好的学习sql的资料,只要修改一下相应的名称就可以创建自己的存储过程,数据库,表,视图等.是练习的好资料
sql存储过程几个简单例子
sql存储是数据库操作过程中比较重要的一个环节,对于一些初学者来说也是比较抽象难理解的,本文我将通过几个实例来解析数据库中的sql存储过程,这样就将抽象的事物形象化,比较容易理解。 例1: create proc proc_stu @sname varchar(20), @pwd varchar(20) as select * from ren where sname=@sname and pwd=@pwd go 查看结果:proc_stu ‘admin’,’admin’ 例2: 下面的存储过程实现用户验证的功能,如果不成功,返回0,成功则返回1. CREATE PROCEDUREVAL


