Проблема С Суммами В Createcommand

Столкнулся с проблемой. Когда пробую подбить суму по ячейках почему-то считает совсем не правильно… не могу понять причину. Наведу пример. При использовании такого кода




Yii::app()->db->createCommand()

            ->select("

                    COALESCE(SUM(`all_KEKV_8_ppz1`), 0) as all_KEKV_8_ppz1")

            ->from('dodatok3_ppz1')

            ->where('dovidnyk_KEKV_id IN (:ids)', array(':ids'=>'1,2,3'))

            ->queryRow();



В ответ приходит

Array ( [all_KEKV_8_ppz1] => 135 );

Если же этот запрос сделать в базе


SELECT COALESCE(SUM(`all_KEKV_8_ppz1`), 0) as all_KEKV_8_ppz1 FROM `dodatok3_ppz1` WHERE `dovidnyk_KEKV_id` IN (1,2,3)

ответ приходит совсем другой

all_KEKV_8_ppz1 = 4906 …

Пробовал так ещё -




Dodatok3Ppz1::model()->findBySql("SELECT COALESCE(SUM(`all_KEKV_8_ppz1`), 0) as all_KEKV_8_ppz1 FROM `dodatok3_ppz1` WHERE `dovidnyk_KEKV_id` IN (:str_ids)", 

                                                        array(

                                                            ':str_ids'=>"1,2,3"));



Результат тот же

[all_KEKV_8_ppz1] => 135…

В чем проблема то, кто нить подскажет?

Во-первых, меня несколько удивляет конструкция COALESCE(SUM()). Мне кажется, должно быть наоборот: SUM(COALESCE()), не?

Во-вторых, готов поспорить, что у Вас вот тут


->where('dovidnyk_KEKV_id IN (:ids)', array(':ids'=>'1,2,3'))

формируется кривое условие (что-нибудь типа WHERE … IN (‘1,2,3’))

Как передавать список значений вместо одного сттрокового значения - см. документацию и гугл.

верно

http://stackoverflow.com/questions/1586587/pdo-binding-values-for-mysql-in-statement вот описана эта проблема