CREATE TABLE STU_INFO (
XH INT,
XM varchar(6)
);
CREATE TABLE XK (
XH INT,
KCH varchar(6),
KSCJ INT,
KKNY varchar(6)
);
GO
INSERT INTO STU_INFO VALUES( 1, '张三');
INSERT INTO STU_INFO VALUES( 2, '李四');
INSERT INTO STU_INFO VALUES( 3, '王五');
INSERT INTO STU_INFO VALUES( 4, '赵六');
INSERT INTO XK VALUES(1, '大英', 90, '20011');
INSERT INTO XK VALUES(2, '大英', 80, '20011');
INSERT INTO XK VALUES(3, '大英', 70, '20011');
INSERT INTO XK VALUES(4, '大英', 60, '20011');
INSERT INTO XK VALUES(1, '高数', 80, '20011');
INSERT INTO XK VALUES(2, '高数', 70, '20011');
INSERT INTO XK VALUES(3, '高数', 60, '20011');
INSERT INTO XK VALUES(1, '物理', 70, '20011');
INSERT INTO XK VALUES(2, '物理', 60, '20011');
go
SELECT
STU_INFO.XH,
STU_INFO.XM,
COUNT( XK.KCH ) AS 考试课程总数,
SUM( XK.KSCJ ) AS 考试总成绩,
AVG( XK.KSCJ ) AS 考试平均分
FROM
STU_INFO JOIN XK ON (STU_INFO.XH = XK.XH)
WHERE
KKNY = '20011'
GROUP BY
STU_INFO.XH,
STU_INFO.XM;
go
XH XM 考试课程总数 考试总成绩 考试平均分
----------- ------ ----------- ----------- -----------
1 张三 3 240 80
2 李四 3 210 70
3 王五 2 130 65
4 赵六 1 60 60
(4 行受影响)
SELECT A.XH,A.XM,SUM(B.KSCJ) AS ZF,AVG(B.KSCJ) AS PJF
FROM STU_INFO A,XK B
WHERE A.XH=B.XH
AND B.KKNY='20011'
GROUP BY A.XH,A.XM
select a.* ,
(select sum(a.kscj) from xk b where a.xh = b.xh and b.kkny = '20011'),
(select avg(a.kscj) from xk b where a.xh = b.xh and b.kkny = '20011')
from stu_info a