当前位置: 代码迷 >> Sql Server >> 这个如何查询? 学表类的。 #100% 结贴
  详细解决方案

这个如何查询? 学表类的。 #100% 结贴

热度:55   发布时间:2016-04-24 19:36:27.0
这个怎么查询? 学表类的。。。 ################################100% 结贴
数据示例如下:

T_STUDENT(学员信息表)数据示例如下:

STUDENT_ID   NAME  SEX(0表示男、1表示女) AGE

1        张三    0              20

2        李四   1              18



     
T_CLASS(课程信息表)数据示例如下:(假定课程表的数据不会发生变化)

CLASS_ID        NAME

1                语文

2                数学

3                英语

   
T_SCORE(考试成绩表)数据示例如下:

SCORE_ID      STUDENT_ID      CLASS_ID    SCORE

1                   1          1           96

2                   1          2            90

3                   2           1           96



     
问题一:写出对应SQL语句,查询所有缺考的学员以及对应的缺考科目。

问题二 请采用SQL输出学员考试成绩清单(动态吧),并按照总分进行排序,如下结果:
姓名         语文         数学          英语           总分

王五         2          3           4             9

------解决方案--------------------
1, having, not exists, left join, apply
写出不同的语句,就是用了不同的思路去想。都可以。

2,行转列, 搜老贴。
------解决方案--------------------
这个是良民,请大家积极回复。
------解决方案--------------------

------解决方案--------------------
先写第一个把:

create table T_STUDENT(
STUDENT_ID int , 
NAME varchar(20),  
SEX int,
AGE int)

insert into T_STUDENT
select 1        ,'张三',    0    ,          20 union all
select 2        ,'李四',   1     ,         18
     
create table T_CLASS(CLASS_ID   int, NAME varchar(20))

insert into T_CLASS
select 1               ,'语文' union all
select 2                ,'数学' union all
select 3                ,'英语'

create table T_SCORE(SCORE_ID  int,STUDENT_ID int,  CLASS_ID int, SCORE int)

insert into T_SCORE
select 1   ,      1   ,    1    ,     96 union all
select 2  ,      1    ,     2  ,    90 union all
select 3  ,       2   ,     1   ,  96
go



select *
from 
(
select ts.STUDENT_ID,tc.CLASS_ID
from T_STUDENT ts
inner join T_CLASS tc
        on 1=1
  相关解决方案