2

累積合計を生成するために適切な DQL を作成するのに苦労しています。私はプレーンなSQLでそれを行うことができますが、DQLになると私はそれを手に入れることができません.

SQL での表示は次のとおりです。

    SELECT s.name, p.date_short, p.nettobuy,
    (select sum(pp.nettobuy) as sum from price pp where pp.stock_id = p.stock_id and p.broker_id = pp.broker_id and pp.date_short <= p.date_short) as cumulative_sum
FROM price p
    left join stock s on p.stock_id = s.id
    group by p.stock_id, p.date_short
    order by p.stock_id, p.date_short

ありがとう

4

2 に答える 2

3

Doctrine 1.2 のドキュメントを確認しました。クエリの作成方法は次のとおりです (エイリアスに注意してください)。

$query = Doctrine_Query::create();
$query->addSelect('AVG(price) as price');
$query->addSelect('AVG(cost) as cost');
// as many addSelect() as you need
$query->from('my_table');

作成した SQL クエリを出力するには:

echo $query->getSqlQuery();

ステートメントを実行するには:

$product = $query->fetchOne();

取得したデータにアクセスするには、次のようにします。

echo $product->getPrice();
echo $product->getCost();

Group By Clausesで残りのドキュメントを読んでください。

于 2009-12-09T05:14:30.210 に答える
2

DQL の選択部分で合計を指定するだけです。

$query = Doctrine_Query::create()
   ->select('sum(amount)')
   ->from('some_table');

詳細については、Doctrine ドキュメントのこのページを参照してください。

于 2009-12-02T06:34:28.427 に答える