Preciso fazer um consulta na tabela de lancamento que por sua vez possui varios campos, so que eu preciso fazer um select tratando alguns valores nulos usando o coalesce e retornar os outros campos. Mas esta dado um erro.
$criteria = new CDbCriteria();
$criteria->select = "COALESCE(datapagamento, datavencimento) as datap, COALESCE(valorpago, valor) as valorp";
$criteria->condition = "datap >= 2011/10/01 AND datap <= 2011/10/31";
$criteria->order = "datap ASC";
$lancamento = Lancamento::model()->findAll($criteria);
Qual é a forma correta de se fazer esta consulta alguem poderia me ajuda.
Tenta trocar o [color="#000080"]COALESCE [/color]por [color="#000080"]IFNULL [/color]pra sem se tem resultado. Testei essa sua query no SQL-Front e rodou beleza, será que a gridview não aceita esse tipo de comando?
O que eu quero é basicamente isso que esta acima, quero realizar uma consulta que retorne os registros da tabela lançamento de um determinado periodo, so que no grid vai ter apenas uma coluna de data(se nao tiver data de pagamento monstra a data de vencimento) a mesma coisa para coluna valor(se nao tiver o valor pago, mostra o valor) e todos estes registro sao organizados pela data.
class nomeClasse extends CActiveRecord {
public $datap;
public $valorp;
........
}
Acontece que você ta chamando em sua grid dos campos que não existe na sua consulta a datavencimento e datapagamento, onde você renomeou por datap e valorp.