Zum Inhalt springen

Verständnisfrage CustomQuery

Erstellt am 14. November 2014 · 2 Antworten · letzte Antwort am 18. November 2014

Tags: Frage

HH ·

Hallo,
ich habe mal ne Verständnisfrage, ich möchte in einer Extension Zahlen bzw. Punkte einzelner Spalten zusammenzählen. Eine Gruppe kann pro Monat Punkte machen und ich will im frontend dann eine Liste ausgeben , die die Gruppen nach der Gesamtpunktzahl sortiert.
Dazu habe ich im Repository ein customQuery erzeugt, sieht so aus:

public function listSumme() {
		  $query = $this->createQuery();
                  $query->getQuerySettings()->setReturnRawQueryResult(TRUE);
		  $query->statement('SELECT name, sep ,okt ,nov , SUM(sep+okt+nov) AS gesamt FROM tx_mathenerds_domain_model_mathenerds GROUP BY name ,sep ,okt, nov ORDER BY gesamt DESC;');
		  
		  return $query->execute();
	}

Meine Frage: Was macht setReturnRawQueryResult(TRUE), nur damit funktioniert das ganze...

Zweite Frage, gibt es eine Möglichkeit so eine Abfrage ohne statement() zu realisieren. Ich habe irgendwo gelesen, dass man wenn möglich statement() nicht benutzen soll...
Danke!

toifel ·

setReturnRawQueryResult sorgt dafür, dass ein einfaches Array ausgegeben wird. Also kein fertige ObjectStorage Model, welches direkt auf die entsprechende Datenbank gemappt ist.
Damit es auch ohne setReturnRawQueryResult funktioniert muss wahrscheinlich noch "gesamt" in deiner Model-Klasse definiert werden.

Ohne statement wird der "SUM()" Teil wahrscheinlich unlustig umzusetzen - ich persönlich nutze fast nur noch statement(), da die Queries über extbase 1. teilweise dämlich anzulegen sind und 2. die erzeugten Statements oft grober Unfug sind, wenn es um Performance geht.

HH ·

Danke für die Antwort,
dann lass ich's auch beim statement(),

jetzt ist mir aufgefallen....dann muss ich mich beim query um so geschichten kümmern wie z.B. dass einträge die gelöscht sind nicht ausgelesen werde oder nur die einträge der aktuellen pid usw....
danke!