Wie erhalte ich eine berechnete Spalte mit db_select?

7

Ich benötige Summe (Punkte)? Hilfe zum Hinzufügen des unten angegebenen Beispielcodes?

$query = db_select('digitaliq_question_points','n')
  ->fields('n',array('points'))
  ->condition("node_id", $node->nid, '=')
  ->condition('n.fld_group', $fields, 'IN');

$points = $query->execute()->fetchAll();
Kiran Kumar
quelle

Antworten:

9

Sie können die addExpression()Methode verwenden:

$query = db_select('digitaliq_question_points','n')
  ->fields('n',array('points'))
  ->condition("node_id", $node->nid, '=') 
  ->condition('n.fld_group', $fields, 'IN');

$alias = $query->addExpression('SUM(points)', 'sum_of_points');

$points = $query->execute()->fetchAll();

Natürlich muss sich dies je nach Rückgabewert / Gruppierungsanforderungen möglicherweise geringfügig ändern, aber das ist die Methode, nach der Sie suchen.

Clive
quelle