Zend framework-Gruppe durch

Ich versuche zu tun, eine Gruppe von mit dem Zend framework. Hier ist mein code:

$table = new TableClass();
$select = $table->select();
$select->from ("table", array("date", "column1" => "sum(column1)"));
$select->group ( array ("date") );
$results = $table->fetchAll ($select);
$result = $results[0];
$date = $result->date;
$column1 = $result->column1;

TabellenKlasse erweitert 'Zend_Db_Table_Abstract'.

Kann ich die query, indem man die mysql-query-log. Die Abfrage ist gut gebildet - column1 ist mit dem Namen der Abfrage und die Ergebnisse korrekt Aussehen, wenn ich die Abfrage in der mysql workbench.

Kann ich nicht zugreifen auf die Daten in 'column1' - ich bekomme immer diese exception:

Uncaught exception 'Zend_Db_Table_Row_Exception' with message 'Angegebene Spalte "spalte1" ist nicht in der Zeile'

Kann ich aber den Zugriff auf die Spalte Datum, ohne Frage.

Habe ich versucht:

  • Zugriff auf die Spalten-array-index:
    $Ergebnis[0]
    aber Sie eine Ausnahme (die keinen Zugriff auf die Spalten nach dem index).
  • nicht mit einer Spalte alias:
    $auswählen->aus ("Tabelle", array("Datum", "sum ("column1")"));
    $spalte1 = $result["sum(spalte1)"];
    aber Sie eine Ausnahme (die keine Spalte "Summe(Spalte 1)").
  • werfen in einem Zend_Db_Expr:
    "column1" => new Zend_Db_Expr ( "Summe ("column1")" )
    aber das hilft nicht.

Einige andere Beispiele, die ich gesehen habe, schlagen die Verwendung von den Namen der Spalten ohne Aggregatfunktionen, dh. "column1" statt "Summe(Spalte 1)" aber das scheint nicht, um mir die Antwort - die Abfrage keine Aggregat-Funktionen, so dass mysql nicht wissen, was zu tun.

Jede Hilfe dankbar.

InformationsquelleAutor | 2010-06-19

Schreibe einen Kommentar