SQL 两表查询
有两张表,结构如下:
tblxuesheng 学生表
ID学生ID
NAME 姓名
tblKaoshi考试表
ID学生ID
TestDateTime考试时间
YuWenCJ语文成绩
shuxueCJ数学成绩
tblxuesheng 学生表 表中的内容如下:
IDNAME
1小强
2小王
3小高
tblKaoshi考试表 表中的内容如下:
IDTestDateTimeYuWenCJshuxueCJ
12005-4-25 00.00.00 8998
22005-4-15 00.00.00 8788
32005-6-23 00.00.00 8695
帮写些SQL代码得出一个表,结果如下:
NAME项目TestDateTime成绩
小强语文2005-4-25 89
小王语文2005-4-15 87
小高语文2005-6-23 86
小强数学2005-4-25 98
小王数学2005-4-15 88
小高数学2005-6-23 95
create table #tblxuesheng(ID INT,NAME VARCHAR(10))
INSERT #tblxuesheng select 1,'小强'
INSERT #tblxuesheng select 2,'小王'
INSERT #tblxuesheng select 3,'小高'
create table #tblKaoshi(ID int,TestDateTime datetime,YuWenCJint,shuxueCJ int)
insert #tblKaoshi select 1,'2005-4-25',89,98
insert #tblKaoshi select 2,'2005-4-15',87,88
insert #tblKaoshi select 3,'2005-6-23',86,95
select a.NAME,b.项目,b.TestDateTime,b.成绩 from #tblxuesheng a,
(
select ID,TestDateTime,'数学' 项目,YuWenCJ 成绩 from #tblKaoshi
union
select ID,TestDateTime,'语文' 项目,shuxueCJ 成绩 from #tblKaoshi) b
where a.ID=b.ID order by 项目
--结果
NAME 项目 TestDateTime 成绩
----- ----- ---------------------------- ------
小强 数学 2005-04-25 00:00:00.000 89
小王 数学 2005-04-15 00:00:00.000 87
小高 数学 2005-06-23 00:00:00.000 86
小强 语文 2005-04-25 00:00:00.000 98
小王 语文 2005-04-15 00:00:00.000 88
小高 语文 2005-06-23 00:00:00.000 95
(所影响的行数为 6 行)

浙公网安备 33010602011771号