求一SQL语句

along19811006 2006-04-11 05:04:56
现有三张表
员工表A
工号 姓名 房间号 床号
empno name room_no bed_no
2006010001 lida A101 A1
------------------------------------
房间表B
房号 可住人数 备注
room_no max_no remark
A101 2
A102 3
A103 2
A104 4
------------------------------------
床号表C
序号 床号
No bed_no
1 A1
2 A2
3 B1
4 B2

现想用一条语句得到每间房间的所有床铺信息(住着谁,没人住就显示空)
A101 A1 _____(工号) _______(姓名)
A101 A2 _____(工号) _______(姓名)
A102 A1 _____(工号) _______(姓名)
A102 A2 _____(工号) _______(姓名)
A102 B1 _____(工号) _______(姓名)
A103 A1 _____(工号) _______(姓名)
A103 A2 _____(工号) _______(姓名)
A104 A1 _____(工号) _______(姓名)
A104 A2 _____(工号) _______(姓名)
A104 B1 _____(工号) _______(姓名)
A104 B2 _____(工号) _______(姓名)

请大虾们赐教.小弟在此谢过.


...全文
116 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
marco08 2006-04-12
  • 打赏
  • 举报
回复
学习...
sxdoujg 2006-04-12
  • 打赏
  • 举报
回复
up
zjyweiweipb 2006-04-12
  • 打赏
  • 举报
回复
我觉得你的表结构设计的还不是十分合理,床号和房间号没有对应的话,不就表达不出床和房间的对应关系了吗?
along19811006 2006-04-12
  • 打赏
  • 举报
回复
床号表c和房间表b没有直接关系,只是当房间b的最大可住人数和床号表系数相等时,代表房间有多少张床。
huailairen 2006-04-11
  • 打赏
  • 举报
回复
你的床号表C
怎么和房间表B关联呢?
itblog 2006-04-11
  • 打赏
  • 举报
回复
select room_no, bed_no,empno,name from 员工表A A right join 房间表B B
on a.room_no=b.room_no
inner join 床号表C c
on b.bed_no=c.bed_no

子陌红尘 2006-04-11
  • 打赏
  • 举报
回复
declare @A table(empno varchar(10),name varchar(10),room_no varchar(10),bed_no varchar(10))
insert into @A select '2006010001','lida','A101','A1'
declare @B table(room_no varchar(10),max_no int,remark varchar(20))
insert into @B select 'A101',2,null
insert into @B select 'A102',3,null
insert into @B select 'A103',2,null
insert into @B select 'A104',4,null
declare @C table(No int,bed_no varchar(10))
insert into @C select 1,'A1'
insert into @C select 2,'A2'
insert into @C select 3,'B1'
insert into @C select 4,'B2'


select
b.room_no,c.bed_no,a.empno,a.name
from
@B b
inner join
@C c
on
b.max_no>=c.No
left join
@A a
on
b.room_no=a.room_no and c.bed_no=a.bed_no
order by
b.room_no,c.bed_no


/*
room_no bed_no empno name
---------- ---------- ---------- ----------
A101 A1 2006010001 lida
A101 A2 NULL NULL
A102 A1 NULL NULL
A102 A2 NULL NULL
A102 B1 NULL NULL
A103 A1 NULL NULL
A103 A2 NULL NULL
A104 A1 NULL NULL
A104 A2 NULL NULL
A104 B1 NULL NULL
A104 B2 NULL NULL
*/

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧