这样结果用sql怎么实现?

xc008 2004-05-02 12:30:57
在三个表ProjectMan, Project
------------------------------------------
ProjectMan字段;
ProjectMID, ProjectName

数据:
01 计算机
02 教育
... ...
-------------------------------------------
Project字段:
ProjectID, ProjectName, ProjectMID

数据:
01 软件 01
02 硬件 01
03 网络 01
04 语文 02
05 数学 02
06 体育 02
... ... ...
----------------------------------------------
要求的查询结果:
01计算机
软件
硬件
网络

02教育
语文
数学
体育

谢谢各位....


...全文
17 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
internetcsdn 2004-05-03
计算机01 教育02
--------------
软件 NULL
硬件 NULL
NULL 网络
NULL 数学
NULL 语文

不行,而且不适用于动态列.
关注
  • 打赏
  • 举报
回复
internetcsdn 2004-05-03
create table ProjectMan(
ProjectMID varchar(10), ProjectName varchar(20))
insert ProjectMan
select '01','计算机'
union all select '02','教育'

create table Project(
ProjectID int identity(1,1), ProjectName varchar(20),ProjectMID varchar(10))
insert Project(ProjectName,ProjectMID)
select '软件','01'
union all select '硬件','01'
union all select '网络','02'
union all select '数学','02'
union all select '语文','02'


select a.projectname,b.ProjectName+b.Projectmid as b_ProjectName into #t from Project a join
Projectman b on b.ProjectMID=a.ProjectMID


select case b_projectname when '计算机01' then projectname else null end as 计算机01,
case b_projectname when '教育02' then projectname else null end as 教育02
from #t

--select * from #t

drop table project,projectman,#t
  • 打赏
  • 举报
回复
internetcsdn 2004-05-03
向楼上的楼上学习
  • 打赏
  • 举报
回复
asa80 2004-05-03
学习
  • 打赏
  • 举报
回复
SoarInAir 2004-05-03
这样就可以了,
select col1 from
(
select projectmid+ProjectName as col1, projectmid as col2 from projectman
union
select ProjectName as col1,projectmid as col2 from project
)
as b
order by b.col2

表定义:

create table ProjectMan(
ProjectMID varchar(10), ProjectName varchar(20))
insert ProjectMan
select '01','计算机'
union all select '02','教育'

create table Project(
ProjectID int identity(1,1), ProjectName varchar(20),ProjectMID varchar(10))
insert Project(ProjectName,ProjectMID)
select '软件','01'
union all select '硬件','01'
union all select '网络','01'
union all select '数学','02'
union all select '语文','02'

结果集:

01计算机
软件
网络
硬件
02教育
数学
语文

  • 打赏
  • 举报
回复
zw_sjj 2004-05-03
好象不可以吧
  • 打赏
  • 举报
回复
xc008 2004-05-03
楼上的不行的哦
  • 打赏
  • 举报
回复
xc008 2004-05-02
两个表的关联为ProjectMID
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server
加入

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2004-05-02 12:30
社区公告
暂无公告