sql将多行子表信息转成主表信息的列

最近,开发了一个项目管理系统,一条项目可能有多个人进行管理,也就是有可能是一个项目经理管理4到5个项目成员,业务人员要求导出excel,需要在一行中能可看到项目的所有信息,包括项目编号、项目名称、项目经理、项目成员A等信息,我的数据库设计是这样的

项目信息主表:ID,项目编号、项目名称~~~~~

项目成员表:ID,Pid,成员名称(ProManager),~~~~ 表名:ProMembList

这是是个问题了,问度娘吧,也没有很好的解决方案!

最后,木办法了,用存储过程吧

1,按导出要求建立一个临时表a;

2,将项目主信息插入进去

3,依次读取主表的ID,将主表对应的项目成员插入临时表b

select identity(bigint,1,1) as id, Pid, ProManageinto #b from ProMembList where Pid = 主表的ID

上面这句话主要是为了重新设置ID,进行排序

update #a set #a.ProManager = (select ProManager from #b where id = 1), #a.ProManagerA=(select ProManager from #b where id = 2) where #a.ID = 主表的ID

4,依次修改临时表a中的项目经理,项目成员A等

阅读更多
文章标签: sql 行转列
个人分类: SqlServer数据库
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭