Я пытаюсь найти решение для моей проблемы, но часы размышлений и поиска не помогли.Поэтому я подумал, может быть, я мог бы спросить это здесь.
У меня есть две таблицы:
Table: Project
projectid | projectName | projectInformation | totalPrice | projectStatus
-------------- ------------ ------------------- ---------- -------------
1 "Education" "Information..." 2000 FALSE
2 "Hospital" "Information..." 3000 TRUE
3 "Water" "Information..." 1000 TRUE
Table: Donations
donationid | donationamount | date | costumerid | projectid
---------- -------------- ---- ---------- ---------
1 10 now() 3 1
2 20 now() 1 2
3 50 now() 2 2
4 15 now() 4 3
Я хочу заархивировать следующие результаты:
projectid | projectname | projectinformation | totalprice | projectstatus | sum(amount)
1 "Education" "information..." 2000 FALSE 325
2 "Hospital" "information..." 3000 TRUE
3 "Water" "information..." 1000 TRUE 120
Так что клиенты могутпожертвовать сумму топора для проекта.
Я хочу показать собранную сумму денег за каждый проект.Когда я делаю следующий запрос, он дает мне только проекты с пожертвованиями.Я также хочу показать все проекты, если пожертвований еще нет, и указать в качестве суммы по умолчанию, например, 0 долларов США.
Это был мой запрос, который дает только проект с пожертвованиями:
select projectid, projectname, projectinformation, totalprice, projectstatus, sum(amount)
from project
natural join donation
group by projectid, projectname, projectinformation, totalprice, projectstatus;
Я предполагаю, что мне нужно использовать левое внешнее соединение, но почему-то я не мог понять, как написать это правильно.