如何在sqlalchemy过滤器中使用带标签的列?

时间:2016-01-16 10:12:43

标签: python flask-sqlalchemy

我想在sqlalchemy过滤器中使用标记列。例如:

    $now = gmdate("D, d M Y H:i:s");
    header('Pragma: public');
    header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header("Last-Modified: {$now} GMT");
    header('Content-Type: text/csv');
    header("Content-Disposition: attachment;filename={$filename}");
    header("Content-Transfer-Encoding: binary");
    echo chr(255) . chr(254) . mb_convert_encoding($content, 'UTF-16LE', 'UTF-8');

我需要db.session.query( PartMaster.name, PartMaster.description, PartTracker.actual_length, func.sum(PartTracker.quantity).label('quantity') ).join(PartTracker).group_by( PartTracker.part_master_id,PartTracker.actual_length ).all() 的结果。请建议

1 个答案:

答案 0 :(得分:2)

在SQL中,如果要按结果过滤行,则需要使用HAVING指令。

所以在你的情况下:

db.session.query(
    PartMaster.name,
    PartMaster.description,
    PartTracker.actual_length,
    func.sum(PartTracker.quantity).label('quantity')
).join(PartTracker).group_by(
    PartTracker.part_master_id,PartTracker.actual_length
).having(
    func.sum(PartTracker.quantity) > 0
)

来自doc

的示例