# -*- coding: utf-8 -*- from sqlalchemy import func, case from Database import db_session from Models import Order result = db_session.query(Order.code, func.sum(Order.qty).label('total_qty'), func.sum(case([ (Order.type == 'A', Order.qty), (Order.type == 'B', 0) ])).label('A_qty'), func.sum(case([ (Order.type == 'A', 0), (Order.type == 'B', Order.qty) ])).label('B_qty')).filter(조건문).group_by(Order.code).all() print result
<! 설마 위 소스를 그냥 복&붙하곤 안 된다는 사람은 없길 바람 ㄷㄷㄷㄷ !>
위 소스를 실행시키면 code별로 type 유형별 합계를 얻을 수 있다.
핵심 = case([(조건1, 값), (조건2, 값), … (조건n, 값)])