首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求select 语句.成绩表.解决思路

2012-02-17 
求select 语句...成绩表.../*原表*/M_ID语文成绩英语成绩数学成绩物理成绩化学成绩----------------------

求select 语句...成绩表...
/*原表*/

M_ID     语文成绩   英语成绩   数学成绩   物理成绩   化学成绩
--------------------------------
1001           30               78               77               68               65  
1002           69               54               65               59               69
1003           80               20               63               81               76
1004           92               45               59               61               60
1005           30               20               16               42               60
1006           45               78               70               64               44
1007           78               65               98               85               89
1008           85               99               100             39               95
1009           63               75               85               69               93
--==========================================================
/*要得到的表*/

M_ID           科目                                               最低成绩
----------------------
1001       语文成绩                                                 30
1005       语文成绩                                                 30
1003       英语成绩                                                 20
1005       数学成绩                                                 16


1008       物理成绩                                                 39
1006       化学成绩                                                 44

/* "科目 ", "最低成绩 ",为新生成字段*/
/*列变行生成新表*/
有个存储过程最好...


谢谢


[解决办法]
CREATE TABLE T

(M_ID varchar(12), 語文成績 INT, 英語成績 INT, 數學成績 INT,物理成績 INT,化學成績 INT)
insert into t

select '1001 ', 30, 78, 77, 68, 65 union all
select '1002 ', 69, 54, 65, 59, 69 union all
select '1003 ', 80, 20, 63, 81, 76 union all
select '1004 ', 92, 45, 59, 61, 60 union all
select '1005 ', 30, 20, 16, 42, 60 union all
select '1006 ', 45, 78, 70, 64, 44 union all
select '1007 ', 78, 65, 98, 85, 89 union all
select '1008 ', 85, 99, 100, 39, 95 union all
select '1009 ', 63 , 75, 85 , 69, 93

select * from
(
select M_ID, '語文成績 'AS 科目,最低分=(select min(語文成績) from t )from t WHERE 語文成績=(select min(語文成績) from t)
UNION
select M_ID, '英語成績 'AS 科目,最低分=(select min(英語成績) from t )from t WHERE 英語成績=(select min(英語成績) from t)
UNION
select M_ID, '數學成績 'AS 科目,最低分=(select min(數學成績) from t )from t WHERE 數學成績=(select min(數學成績) from t)
UNION
select M_ID, '物理成績 'AS 科目,最低分=(select min(物理成績) from t )from t WHERE 物理成績=(select min(物理成績) from t)
UNION
select M_ID, '化學成績 'AS 科目,最低分=(select min(化學成績) from t )from t WHERE 化學成績=(select min(化學成績) from t)
)a


M_ID 科目 最低分
------------ -------- -----------
1001 語文成績 30
1003 英語成績 20
1005 英語成績 20
1005 語文成績 30
1005 數學成績 16
1006 化學成績 44
1008 物理成績 39

(7 row(s) affected)

热点排行
Bad Request.