2 回答

TA貢獻1828條經驗 獲得超4個贊
CREATE DEFINER=root
@localhost
PROCEDURE countSoreP
()
BEGIN
declare less60 smallint default 0; /*x <= 60*/
declare b60a70 smallint default 0;
declare b70a80 smallint default 0;
declare b80a90 smallint default 0;
declare more90 smallint default 0;
declare countcno char(4) default '****';
SELECT cno INTO countcno FROM course WHERE cname = '離散數學';/*確定course表中有離散數學這門課*/ SELECT COUNT(*) INTO less60 FROM sc WHERE cno = '8' AND grade < 60; SELECT COUNT(*) INTO b60a70 FROM sc WHERE cno = '8' AND grade >= 60 AND grade < 70; SELECT COUNT(*) INTO b70a80 FROM sc WHERE cno = '8' AND grade >= 70 AND grade < 80; SELECT COUNT(*) INTO b80a90 FROM sc WHERE cno = '8' AND grade >= 80 AND grade < 90; SELECT COUNT(*)INTO more90 FROM sc WHERE cno = '8' AND grade >= 90; create table countScore( scorestage char(10), number smallint); insert into countscore values('x<60', less60); insert into countscore values('60<=x<70', b60a70); insert into countscore values('70<=x<80', b70a80); insert into countscore values('80<=x<90', b80a90); insert into countscore values('x>=90', more90);
END

TA貢獻1851條經驗 獲得超3個贊
數據庫是sqlserver,那假設變成語言是C#好了。數據庫這里假設有2張表:Student(學生)和Course(課程),
Course表中設置Student為外鍵,比如學生A選擇課程1,那么Course表下就產生一條數據記錄(學生A, ‘課程1’);
同理學生BCDEF選擇課程12345,那么對應Course表下就產生這么幾條記錄:
(學生B,‘課程2’),(學生C,‘課程3’),(學生D,‘課程3’),
(學生E,‘課程4’),(學生F,‘課程5’),
最后做統計處理,統計每個CourseName(課程名)被選擇的次數,即Select sum(*) from Course where CourseName=''課程x‘’。
Course
|- Student
|- CourseName
前端選課的時候,需要根據學生的Id,先得到學生已經選擇哪些課程,再決定學生還能選擇哪些,以及還能選擇多少就好了。
- 2 回答
- 0 關注
- 794 瀏覽
添加回答
舉報