테이블에 몇 개의 필드를 그룹화하고 그룹을 합산하려고 시도하지만 이중으로 계산됩니다. 다음과 같이GroupBy 및 SQLAlchemy의 합계?
내 모델은 다음과 같습니다 : 내가 사용하고
class CostCenter(db.Model):
__tablename__ = 'costcenter'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String)
number = db.Column(db.Integer)
class Expense(db.Model):
__tablename__ = 'expense'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
glitem_id = db.Column(db.Integer, db.ForeignKey('glitem.id'))
glitem = db.relationship('GlItem')
costcenter_id = db.Column(db.Integer, db.ForeignKey('costcenter.id'))
costcenter = db.relationship('CostCenter')
value = db.Column(db.Float)
date = db.Column(db.Date)
: 나는 비용을 인쇄 할 때
expenses=db.session.query(Expense,func.sum(Expense.value)).group_by(Expense.date).filter(CostCenter.id.in_([1,2,3]))
는 다음 SQL 문을 보여줍니다. 그것은 나에게 맞는 것 같지만 SQL에 익숙하지 않습니다. 문제는 sum_1로 출력하는 값이 여러 번 계산된다는 것입니다. "in statment"항목에 [1] 항목이 있으면 3 가지를 모두 합산합니다. 내가 [1,2]를 가졌다면 3 가지를 모두 합친 다음 두 배로 늘리고, [1,2,3]이 있으면 3 가지를 모두 합하여 3 배로 만듭니다. 왜 그것이 여러 번 세지 모르겠습니다. 이 문제를 어떻게 해결할 수 있습니까?
SELECT expense.id AS expense_id, expense.glitem_id AS expense_glitem_id, expense.costcenter_id AS expense_costcenter_id, expense.value AS expense_value, expense.date AS expense_date, sum(expense.value) AS sum_1
FROM expense, costcenter
WHERE costcenter.id IN (:id_1, :id_2, :id_3) GROUP BY expense.date
고마워요!