日期:2014-05-19  浏览次数:20477 次

这两个表怎么合并出想要的结果,最后50分全给了,急!
表1.Cards                                                             表2.Users
CardNo   Owner(车主)   User(使用者)                 ID             Name
粤A101             1               2                                     1             麦迪
粤A102             4               3                                     2   姚明
粤A103             3               1                                     3       科比
                                                                              4   纳什

显示结果
车牌      身份    姓名
粤A101                     车主                 麦迪
粤A101                     使用者             姚明
粤A102                     车主                 纳什
粤A102                     使用者             科比
粤A103                     车主                 科比
粤A103                     使用者             麦迪

------解决方案--------------------
Create Table Cards
(CardNo Nvarchar(20),
Owner Int,
[User] Int)

Create Table Users
(ID Int,
Name Nvarchar(20))
Insert Cards Select N '粤A101 ', 1, 2
Union All Select N '粤A102 ', 4, 3
Union All Select N '粤A103 ', 3, 1

Insert Users Select 1, N '麦迪 '
Union All Select 2, N '姚明 '
Union All Select 3, N '科比 '
Union All Select 4, N '纳什 '
GO
Select
A.CardNo,
N '车主 ' As 身份,
B.Name As 姓名
From
Cards A
Inner Join
Users B
On A.Owner = B.ID
Union
Select
A.CardNo,
N '使用者 ' As 身份,
B.Name As 姓名
From
Cards A
Inner Join
Users B
On A.[User] = B.ID
Order By
CardNo, 身份 Desc
GO
Drop Table Cards, Users
--Result
/*
CardNo 身份 姓名
粤A101 车主 麦迪
粤A101 使用者 姚明
粤A102 车主 纳什
粤A102 使用者 科比
粤A103 车主 科比
粤A103 使用者 麦迪
*/

------解决方案--------------------
select 车牌,身份,B.Name 姓名 from(
select CardNo 车牌, '车主 ' 身份,