SELECT r.AdNo,
r.Name,
SUM(CASE WHEN p.SubjectID = 101 THEN s.score ELSE 0 END) AS ENGLISH,
SUM(CASE WHEN p.SubjectID = 102 THEN s.score ELSE 0 END) AS KISWAHILI,
SUM(CASE WHEN p.SubjectID = 103 THEN s.score ELSE 0 END) AS MATH,
SUM(CASE WHEN p.SubjectID = 104 THEN s.score ELSE 0 END) AS CRE,
SUM(CASE WHEN p.SubjectID = 105 THEN s.score ELSE 0 END) AS 'SOCIAL STUDIES',
SUM(CASE WHEN p.SubjectID THEN s.score ELSE 0 END) AS 'TOTAL',
(sum(s.score)/count(s.SubjectID)) AS 'AVERAGE',
g.grade_letter
FROM student r
INNER JOIN marks s ON r.AdNo = s.AdNo
INNER JOIN subject p ON s.SubjectID = p.SubjectID
INNER JOIN grades g ON 77.2 BETWEEN g.lowerlimit AND g.upperlimit
GROUP BY r.Name
order by AVERAGE DESC;
]
[SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for category
-- ----------------------------
DROP TABLE IF EXISTS `category`;
CREATE TABLE `category` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`CategoryID` int(4) NOT NULL,
`CategoryName` varchar(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `CategoryID` (`CategoryID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Table structure for grades
-- ----------------------------
DROP TABLE IF EXISTS `grades`;
CREATE TABLE `grades` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`grade_letter` char(2) DEFAULT NULL,
`lowerlimit` double DEFAULT NULL,
`upperlimit` double DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `grade_letter` (`grade_letter`)
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Table structure for marks
-- ----------------------------
DROP TABLE IF EXISTS `marks`;
CREATE TABLE `marks` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`AdNo` varchar(10) DEFAULT NULL,
`SubjectID` int(3) DEFAULT NULL,
`score` double DEFAULT NULL,
`CategoryID` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `AdNo` (`AdNo`,`SubjectID`,`CategoryID`),
KEY `SubjectID` (`SubjectID`),
KEY `CategoryID` (`CategoryID`),
CONSTRAINT `marks_ibfk_1` FOREIGN KEY (`AdNo`) REFERENCES `student` (`AdNo`),
CONSTRAINT `marks_ibfk_2` FOREIGN KEY (`SubjectID`) REFERENCES `subject` (`SubjectID`),
CONSTRAINT `marks_ibfk_3` FOREIGN KEY (`CategoryID`) REFERENCES `category` (`CategoryID`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`Name` varchar(30) DEFAULT NULL,
`AdNo` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `AdNo` (`AdNo`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Table structure for subject
-- ----------------------------
DROP TABLE IF EXISTS `subject`;
CREATE TABLE `subject` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`SubjectID` int(3) DEFAULT NULL,
`SubjectName` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `SubjectID` (`SubjectID`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;]
귀하의 질문은 자체에 포함 할 필요가있다. Google 드라이브 링크가 적합하지 않습니다. –
데이터베이스 모델 이미지를 게시 할 수 없습니다 .. – Multithreadke
이미지를 게시하도록 말하지 않았습니다. 데이터베이스 스키마를 텍스트로 추가하십시오. –