Вот ваш запрос:
SELECT s.sno, SUM(sp.qty) as GRTQ
FROM s, p, sp
WHERE s.sno = sp.sno AND p.pno = sp.pno AND (p.color = "red" OR p.color="green")
GROUP BY s.sno, s.sname
HAVING GRTQ > 300
ORDER BY GRTQ ASC;
The resulting output is:
+-----+------+
| sno | GRTQ |
+-----+------+
| s4 | 500 |
| s2 | 700 |
| s1 | 800 |
+-----+------+
Вы можете проверить это, вычислив его самостоятельно.
то есть красной или зеленой частями являются p1, p2, p4, p6
Среди них:
s4 поставляется только p2 и p4 в количествах200 и 300 соответственно.Итого = 500
s2, поставляется только p1 и p2, в количествах 300 и 400 соответственно.Всего = 700
с1 поставлено все детали в следующих количествах: 300 + 200 + 200 + 100. Всего = 800