Не могу найти ошибку в SQL запросе!
Из двух таблиц courses и purchaselist, запрос должен вернуть таблицу из двух столбцов. Надо написать запрос, который выводит сумму, сколько часов должен в итоге проучиться каждый студент (сумма длительности всех курсов на которые он подписан). В результате запрос возвращает две колонки: Имя Студента — Количество часов.
Таблица courses
| name | duration |
|---|---|
| Мобильный разработчик с нуля | 10 |
| Веб-разработчик c 0 до PRO | 10 |
| Python-разработчик с нуля | 4 |
| PHP-разработчик с 0 до PRO | 3 |
| Java-разработчик | 5 |
Таблица purchaselist
| student_name | course_name |
|---|---|
| Амбражевич Порфирий | Мобильный разработчик |
| Жариков Афанасий | Мобильный разработчик |
| Бойков Максим | Мобильный разработчик |
| Гайденко Илья | Мобильный разработчик |
| Ядрихинский Егор | Java-разработчик |
| Амбражевич Порфирий | Java-разработчик |
| Жариков Афанасий | Java-разработчик |
| Бойков Максим | Python-разработчик |
| Гайденко Илья | Python-разработчик |
| Ядрихинский Егор | Python-разработчик |
| Амбражевич Порфирий | Python-разработчик |
| Жариков Афанасий | Веб-разработчик |
| Бойков Максим | PHP-разработчик |
| Гайденко Илья | PHP-разработчик |
| Ядрихинский Егор | PHP-разработчик |
Я написал следующий запрос:
SELECT student_name AS "Имя Студента", SUM(duration) AS "Количество часов"
FROM (SELECT student_name, course_name AS name, duration FROM purchaselist, courses) AS s;
Вместо таблицы выводится одна строка!
Ответы (1 шт):
Автор решения: MaxDown
→ Ссылка
SQL
SELECT
P.student_name,
SUM(C.duration)
FROM purchaselist P
JOIN courses C ON C.name = P.course_name
--JOIN courses C ON C.name LIKE P.course_name
GROUP BY P.student_name
Тут уже от Вашей задачи зависит, по данным не понятно. Либо курсы равны названиям, либо содержат.