Doktrin ile Kümülatif DQL

2 Cevap php

Im kümülatif toplamı oluşturmak için uygun bir DQL çalışma dışarı zor anlar yaşıyor. Ben düz SQL bunu yapabilir ama DQL geldiğinde ben bunu ele alınamıyor.

İşte SQL nasıl görünüyor:

    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

Teşekkürler

2 Cevap

Hey, ben Doktrini 1.2 için belgelerine bakın var ve sorgu oluşturmak için yolu (takma dikkat koymak) olduğunu:

$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');

Çıkışı için SQL sorgu oluşturuldu:

echo $query->getSqlQuery();

Deyimini yürütmek için:

$product = $query->fetchOne();

Ve alınan verilere erişmek için:

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

Group By Clauses de belgelerin kalanını okuyun.

Sadece DQL sizin seçme bölümünde toplamı belirtin:

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

Daha fazla bilgi için Doktrini belgelerinde this page göz atın.