2011-08-31 10 views
7

Quiero hacer una selección simple con una SUMA de varias filas en Drupal, pero parece que no puedo encontrar la manera de hacerlo. Sé que hay más formas de hacer una consulta en Drupal (una de ellas es escribir la consulta real, pero no quiero eso).Drupal - Cómo obtener la SUMA de filas

Aquí está el código que tengo:

$query = db_select("node","n"); 
$query->fields("n", array("nid","likes" => "SUM(likes)")); 

Pero al parecer Drupal despoja a mis soportes y me sale el siguiente error:

1054 Unknown column 'n.SUMlikes' in 'field list' 

Podría alguien ayudarme? ¿Hay algo como $query->sum()?

Respuesta

16

Usted estaría mejor fuera de uso de una expresión:

$query = db_select('node', 'n') 
    ->fields('n', array('nid')); 
$query->addExpression('SUM(likes)', 'likes'); 

El primer argumento es la expresión, el segundo el alias.

Espero que ayude

+0

perfecto. justo lo que estaba buscando. gracias. –

+0

¿Y cómo puedo acceder al resultado? $ query-> total? –

+0

// A continuación se muestra la sintaxis completa trabajada para mí $ query = db_select ('node', 'n') -> fields ('n', array ('nid')); $ query-> addExpression ('SUM (me gusta)', 'Me gusta'); $ query-> execute(); – qasimzee

Cuestiones relacionadas