编号 | 公司名称 |
1 | 大企业 |
项目表
编号 | 项目名称 | 项目类型 | 所属公司 | |
1 | 修铁路 | 铁路 | 大企业 | |
2 | 做软件 | 软件 | 大企业 | |
3 | 做贸易 | 贸易 | 大企业 |
统计表
编号 | 项目名称 | 项目类型1 | 项目类型2 | 项目类型3 | 所属公司id |
1 | 修铁路 | 1 | 0 | 0 | 1 |
2 | 做软件 | 0 | 1 | 0 | 1 |
2 | 做贸易 | 0 | 0 | 1 | 1 |
需要完成的是,通过公司表和项目表,把数据统计出来插入到统计表中,希望用存储过程来实现。希望和大家讨论一下
共同完成
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 编号