次の SQL クエリは Propel (1.4) ではどのように見えますか?
SELECT SUM(`price_equipment`) FROM `order_equipment` WHERE `order_id` = 57072;
Google を使用していくつかの調査を行いましたが、見つかったすべての例で GROUP BY 句が考慮されています。単一の値が必要です。
次の SQL クエリは Propel (1.4) ではどのように見えますか?
SELECT SUM(`price_equipment`) FROM `order_equipment` WHERE `order_id` = 57072;
Google を使用していくつかの調査を行いましたが、見つかったすべての例で GROUP BY 句が考慮されています。単一の値が必要です。
ここに group by ステートメントを追加しても問題はありません。ステートメントをロールアップするのに役立ちます。orderId でグループ化するだけです。グループ化したくない場合は、その行を削除してください。
$value = OrderEquipmentQuery::create()
->withColumn('SUM(price_equipment)')
->filterByOrderId(57072)
->groupByOrderId()
->find()
それが 1.6 でのやり方です。1.4 の場合は、j0k によって与えられた例を見ていきますが、クエリで orderId でグループ化することはおそらく安全であることを覚えておいてください。
Propel 1.4 の構文は次のようになると思います:
$c = new Criteria();
$c->add(OrderEquipmentPeer::ORDER_ID, $orderId);
TestPeer::addSelectColumns($c);
$c->addAsColumn('price_sum', 'SUM('.OrderEquipmentPeer::PRICE_EQUIPMENT.')');
$results = OrderEquipmentPeer::doSelectStmt($c);
propelorm.org の古い wiki が削除されたため、1.4 のドキュメントを見つけるのは非常に困難ですが、その通りだと思います。他のコメントで述べたように、Propel 1.6 には多くの機能があり、安定性がはるかに優れているため、Propel 1.6 へのアップグレードを検討する必要があります。私の知る限り、1.4 ブランチはまったくメンテナンスされていません。