注册 登录
编程论坛 SQL Server论坛

希望和大家讨论共同提高,很典型的例子!

paul3292 发布于 2007-02-26 13:02, 1277 次点击
公司表
编号 公司名称
1 大企业



项目表
编号 项目名称 项目类型 所属公司
1 修铁路 铁路 大企业
2 做软件 软件 大企业
3 做贸易 贸易 大企业






统计表
编号 项目名称 项目类型1 项目类型2 项目类型3 所属公司id
1 修铁路 1 0 0 1
2 做软件 0 1 0 1
2 做贸易 0 0 1 1

需要完成的是,通过公司表和项目表,把数据统计出来插入到统计表中,希望用存储过程来实现。希望和大家讨论一下
共同完成
11 回复
#2
accpfriend2007-02-26 13:07
没有类型表吗,应该有吧
#3
paul32922007-02-26 13:09

我的思路是把数据放到游标中,然后通过循环设置值,然后再把数据添加到统计表中!
但是希望大家给我的点提示或者,小例子,让做起来更方便些

#4
棉花糖ONE2007-02-26 13:13
项目编号是自增的,还是就这三种
#5
paul32922007-02-26 13:23
项目编号就这三种不是自增
#6
棉花糖ONE2007-02-26 13:36

create table company(company_id int,company_name nvarchar(10))
create table project(project_id int,project_name nvarchar(10),project_type nvarchar(10),own_company nvarchar(10))
insert into company select 1,'大企业'
insert into project select 1,'修铁路','铁路','大企业'
union all select 2,'做软件','软件','大企业'
union all select 3,'做贸易','贸易','大企业'
select * from project
select * from company

select b.*,company.company_id from (select project_id as 编号,project_name as 项目名称,sum(case project_type when '铁路' then 1 else 0 end ) as 项目类型一,
sum(case project_type when '软件' then 1 else 0 end ) as 项目类型二,sum(case project_type when '贸易' then 1 else 0 end ) as 项目类型三
from project p group by project_id,project_name) as b,project,company where b. 编号=project.project_id and project.own_company=company.company_name
order by 编号

#7
paul32922007-02-26 15:12

哥们你真很,谢谢了,成了!

#8
cyyu_ryh2007-02-26 15:22
棉花糖果然名不虚传
#9
蓝影2007-02-26 16:05
恩,真不错哈
#10
paul32922007-02-26 16:41

名不虚传啊!太感谢了!
我还在那想存储过程呢,呵呵,写到快翻页了,一看定义了一堆变量!呵呵,再次感谢!

#11
Kendy1234562007-02-26 16:42

棉花出手 例不虚发呀

#12
冰封情愁2007-03-11 21:01

半个小时都不用就做出了,实在佩服!!!!
这么强,怎么学SQL的?

1