2011-11-10 30 views
0

我在我的TurnoveroverVolumeTable類得到這個查詢:沒有得到不同的查詢結果中的Symfony 1.4 /學說

$query = $this->createQuery('tv') 
     ->addSelect('DISTINCT tv.debtor_number') 
     ->addSelect('tv.debtor_name') 
     ->addSelect('tv.country_description') 
     ->addSelect('SUM(tv.turnover_ytd) as tv.turnover_ytd') 
     ->addSelect('tv.currency_description') 
     ->from('TurnoverVolume tv') 
      ->innerJoin('tv.Agent a') 
      ->andWhere('tv.debtor_number = a.debtor_number') 
      ->andWhere('a.agent_number =?', $agent) 
      ->andWhere('tv.period LIKE "' . $year .'%"') 
      ->groupBy('tv.debtor_number'); 

當檢索和顯示我在動作類使用此數據:

$query = Doctrine_Core::getTable('TurnoverVolume')->getYearTurnover($agent_number, $this->currentYear); 

$results = $query->execute(); 

     $turnover_data = array(); 
     foreach ($results as $turnover) { 
      $turnover_result = array(
       'debtor_number' => $turnover['debtor_number'], 
       'debtor_name' => $turnover['debtor_name'], 
       'country_description' => $turnover['country_description'], 
       'turnover_ytd' => $turnover['turnover_ytd'], 
       'currency_description' => $turnover['currency_description'] 
      ); 
      $turnover_data[] = $turnover_result; 
     } 

我得到turnover_ytd的結果是2703,但應該是277450,它只獲得2011年的第一個結果,而不是2011年的總結果。

在日誌Symfony的我有這個MySQL查詢:

SELECT DISTINCT t.company_number AS t__company_number, t.debtor_number AS t__debtor_number, t.period AS t__period, t.debtor_name AS t__debtor_name, t.country_description AS t__country_description, t.currency_description AS t__currency_description, SUM(t.turnover_ytd) AS t__0 FROM turnover_volume t INNER JOIN agent a ON t.debtor_number = a.debtor_number WHERE (t.debtor_number = a.debtor_number AND a.agent_number = '003' AND t.period LIKE "2011%") GROUP BY t.debtor_number 

當我直接將它輸入到MySQL數據庫時,這會得到正確的結果。

任何人都可以向我伸出我可能做錯了什麼?

回答

1

這有幫助嗎?

DISTINCT必須大寫 「爲」必須使用,如果沒有這個一切都將被退回 使用fetchArray(),而不是執行(),後者不能正常工作!

source

+0

太感謝你了,這工作就好了! –