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 關注
- 814 瀏覽
添加回答
舉報
