求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)