我想生成一个表,它将在给定的时间段内售出的图书数量和为不同的图书支付的总金额相加。我需要它来显示一份出售书籍的报告
我的子查询是:
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
,也不合并副本
我见过许多例子,但没有一个对我有用。非常感谢您的帮助!提前谢谢
所以经过大量的研究和试验,我提出了一个问题,解决了我的问题。基本上,我在sqlalchemy中使用了
add_column
属性,它给了我想要为报表显示的确切行相关问题 更多 >
编程相关推荐