Мне нужно создать вид, подобный этому:
STUDENT JANUARY FEBRUARY MARCH ........ DECEMBER
miki 10.23 23.23 0 0
Goku 10 0 0 0
Luffy 0 0 0 0
У меня есть таблица studentMovement(id_studentmovement,id_student,month,year,cost,date,id_university,university_name)
, которая представляет все затраты на одного студента в этом месяце и году.он содержит реальную стоимость, которую некоторые студенты выполнили на определенном курсе в определенном университете.
Table Students(id_student,name)
Table University(id_university,university name);
Я хочу получить стоимость для каждого университета, для всех студентов и для одного студента за каждый месяц (также, еслистудент не потратил ничего в определенном университете:
Этот sql-запрос выглядит так:
select year(sm.date) as year, s.id_student, s.name,
sum(amount) as year_amount,
sum(case when month(sm.date) = 1 then amount else 0 end) as january,
sum(case when month(sm.date) = 2 then amount else 0 end) as february,
. . .
sum(case when month(sm.date) = 12 then amount else 0 end) as december,
u.id_university as id_university,
u.university_name as university_name
from ((schema.students s left join
schema.studentMovement sm
on s.d_student = sm.id_student ) inner join schema.university u on u.id_university=sm.id_university)
group by year(sm.date) as year, s.id_student, s.name, u.id_university,
u.university_name
В запросе указано неверное значение, а какое-то значение равно нулю. Кто-нибудь может мне помочь?