Доработать sql запрос для PostgreSQL
Есть 2 таблицы, в которых хранятся фактический доход и цена в разрезе пакетов(package) и обьявлений(object) http://take.ms/TlPWQ .
Одному обьявлению могут соответствовать много пакетов.
В запросе я джойню таблицы purchase и purchase_info для того чтобы получить детализацию дохода до пакетов(package) и обьявлений(object).
Нужно фактический доход в разрезе ордеров (purchase_id) разбить до пакетов и обьявлений, а total_sum не разбивается, а а дублируется http://take.ms/BUEBo . В чем разница:
В sum - это цена пакета,
но по факту может зайти больше денег чем по цене - cпецифика платежной системы, например
Как я вижу сейчас (в файле пример расчета):
1. Нужно проверить совпадает ли сумма в перчэйс с двух таблиц, то есть total sum= sum --> варианты True\False http://take.ms/bynKd
2.1. Для True берем sum(то есть число с таблицы purchase_info)
2.2. Для False разницу разносим по стоимости пакета http://take.ms/deFlY
Запрос (данные под этим запросом в файле большая выборка)
select
user_id, device, purchase.usd_total_sum, purchase.id purchase_id, purchase.total_sum,sum, purchase_info.usd_sum, purchase.payment_status status, to_timestamp(purchase.created_at) as date,
object_id, package.name package, payment_system.country_id, payment_system.name payment_system
from
public.purchase_info, currency_rate, package, purchase, payment_system
where
purchase_info.package_id=package.id and purchase.id=purchase_info.purchase_id and purchase.payment_system_id=payment_system.id
group by
user_id, purchase.created_at, purchase.usd_total_sum, purchase.total_sum, purchase.payment_status,purchase.created_at,purchase_info.usd_sum,
object_id, package, device, payment_system.country_id,purchase.id, payment_system, purchase.total_sum,sum, purchase_info.currency;