jueves, 28 de abril de 2011

Cómo sumar campos en una busqueda de CakePHP

Una de las tareas comunes cuando se manipulan bases de datos es es obtener el resultado final de sumar las cantidades en una columna especifica.

Quien conozca lo básico de Mysql sabrá que se puede usar una instrucción como esta:


SELECT sum( numero ) AS totalFROM `refunicas`


Ahora bien de que forma podría hacerse esto sin usar el método "query",


Una forma elegante de hacerlo es algo como lo siguiente:


$this->Refunica->field('sum(Refunica.numero) AS total', array('equipo_id'=>$this->data['Equipo']['id']));
En el caso anterior uso el método field para que sólo me entregue el valor y no toda la jerarquía de arrays. 
Si hubiera usado el método find, el resultado en lugar de ser un numero seria algo como: 


array(array(array('total'=>6))) 
Claro como se uso SUM, podría usarse  otras funciones de MySql.





2 comentarios:

  1. Muchas gracias por la informacion, es justo lo que andaba investigando. =)

    ResponderEliminar
  2. hola disculpa puedo hacerte una pregunta de un tema parecido?

    ResponderEliminar