By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE slm (
`id` INTEGER,
`grade_level` VARCHAR(7),
`period` VARCHAR(18)
);
INSERT INTO slm
(`id`, `grade_level`, `period`)
VALUES
('1', 'Grade 1', '1st Grading Period'),
('2', 'Grade 2', '2nd Grading Period');
CREATE TABLE slm_activities (
`id` INTEGER,
`slmid` INTEGER,
`activity` INTEGER,
`count` INTEGER
);
INSERT INTO slm_activities
(`id`, `slmid`, `activity`, `count`)
VALUES
('1', '1', '77', '5'),
('2', '2', '72', '6');
CREATE TABLE periods (
`id` INTEGER,
`period` VARCHAR(18)
);
INSERT INTO periods
(`id`, `period`)
VALUES
('1', '1st Grading Period'),
('2', '2nd Grading Period'),
('3', '3rd Grading Period'),
id | grade_level | period |
---|---|---|
1 | Grade 1 | 1st Grading Period |
2 | Grade 2 | 2nd Grading Period |
id | slmid | activity | count |
---|---|---|---|
1 | 1 | 77 | 5 |
2 | 2 | 72 | 6 |
id | period |
---|---|
1 | 1st Grading Period |
2 | 2nd Grading Period |
3 | 3rd Grading Period |
4 | 4th Grading Period |
id | activity |
---|---|
72 | lesson |
75 | page |
77 | quiz |
SELECT SUM(IFNULL(count,0)) AS activitycount, activities.activity, periods.period
FROM activities
CROSS JOIN periods
LEFT JOIN slm ON periods.period = slm.period
LEFT JOIN slm_activities ON activities.id = slm_activities.activity
AND slm.id=slm_activities.slmid
GROUP BY activities.activity, periods.period
ORDER BY activities.activity, periods.period;
activitycount | activity | period |
---|---|---|
0 | lesson | 1st Grading Period |
6 | lesson | 2nd Grading Period |
0 | lesson | 3rd Grading Period |
0 | lesson | 4th Grading Period |
0 | page | 1st Grading Period |
0 | page | 2nd Grading Period |
0 | page | 3rd Grading Period |
0 | page | 4th Grading Period |
5 | quiz | 1st Grading Period |
0 | quiz | 2nd Grading Period |
0 | quiz | 3rd Grading Period |
0 | quiz | 4th Grading Period |