Таблица продуктов
id name description price
1 AAA AAAAAA 10.00
2 BBB BBBBBB 12.00
3 CCC CCCCCC 15.00
4 DDD DDDDDD 8.00
5 EEE EEEEEE 12.50
Таблица продаж
trackid productid affiliateid paymentstatus refundid
1 2 1 COMPLETED 1
2 2 0 DONE null
3 3 1 COMPLETED null
4 3 0 COMPLETED null
5 3 0 COMPLETED null
6 5 5 DONE null
7 5 0 COMPLETED 2
8 5 2 COMPLETED null
9 2 0 DONE null
10 3 1 COMPLETED 3
Для таблицы продаж
Если для конкретной продажи нет партнера,тогда affiliateid будет равен 0, в противном случае affiliateid (у меня есть другая таблица для пользователя, в которой перечислены продавцы и аффилиаты)
Если по каким-либо причинам были возвращены определенные продажи (по любой причине), то будет установлен возвратдо некоторого значения, в противном случае он будет нулевым
paymenttatus может иметь любое значение 1 из 2, ЗАВЕРШЕНО и СДЕЛАНО
Теперь янужно запросить, чтобы перечислить следующие данные для каждого продукта в таблице продуктов
productid name totalsales affsales refunds
1 AAA 0 0 0
2 BBB 1 1 1
3 CCC 4 2 1
4 DDD 0 0 0
5 EEE 2 1 1
totalalsales: продажи с параметром paymenttatus как «ЗАВЕРШЕНО»
affsales: продажи с paytatus как «ЗАВЕРШЕНО» и affiliateidНЕ РАВНО 0
возвратов: продажи со статусом платежей как «ЗАВЕРШЕНО» и с возвратом НЕ НУЛЬ
Как я могу сформировать этот конкретный запрос?