Я хочу создать таблицу, которая суммирует количество проданных книг и общую сумму, уплаченную за эту отдельную книгу за определенный период времени. Мне нужно, чтобы показать отчет о проданных книгах.
Мой подзапрос:
bp = db.session.query(CustomerPurchase.book_category_id,
func.sum(CustomerPurchase.amount).label('amount'),
func.sum(CustomerPurchase.total_price).label('total_price'))\
.filter(CustomerPurchase.created_on >= start_date)\
.filter(CustomerPurchase.created_on <= end_date)\
.group_by(CustomerPurchase.book_category_id).subquery()
Комбинированный запрос с подзапросом:
cp = CustomerPurchase.query\
.join(bp, bp.c.category_id == CustomerPurchase.category_id)\
.distinct(bp.c.category_id)\
.order_by(bp.c.category_id)
Моя таблица CustomerPurchase выглядит так, и результат моего запроса выглядит так же:
id | book_category_id | book_title | amount | total_price |
---+------------------+------------+--------+-------------+
1 | 1 | Book A | 10 | 35.00 |
2 | 1 | Book A | 20 | 70.00 |
3 | 2 | Book B | 40 | 45.00 |
Желаемый результат после выполнения запроса должен быть таким:
id | book_category_id | book_title | amount | total_price |
---+------------------+------------+--------+-------------+
1 | 1 | Book A | 30 | 105.00 |
2 | 2 | Book B | 40 | 45.00 |
Приведенный выше запрос отображает все книги, которые были проданы клиенту из таблицы CustomerPurchase, но он не SUM
amount
и total_price
и не объединяет дубликат
Я видел много примеров, но ни один из них не помог мне. Любая помощь с благодарностью! Заранее спасибо!