Eigentlich habe ich eine Tabelle mit einigen Spalten, aber ich brauche einige Spalten zu filtern, die 3 i `ll Notwendigkeit:SELECT CASE mit DQL - Lehre + Symfony 3
id | tipodemonstrativo | anoreferencia
---+-------------------+--------------
01 | AN | 2015
02 | AN | 2016
03 | SE | 2014
04 | PB | 2015
ich dies mit roher SQL tat
SELECT anoreferencia,
CASE tipodemonstrativo
WHEN 'PB' THEN CONCAT(anoreferencia, '-03-31')
WHEN 'SE' THEN CONCAT(anoreferencia, '-06-30')
WHEN 'SB' THEN CONCAT(anoreferencia, '-09-30')
WHEN 'AN' THEN CONCAT(anoreferencia, '-12-31')
END AS referencia
FROM demonstrativofinanceiro
ORDER BY referencia DESC
LIMIT 4
Es ergibt sich etwas Link dieses:
id | referencia
---+------------
01 | 2015-12-31
02 | 2016-12-31
03 | 2014-06-30
04 | 2015-03-31
I`m versucht gleiche Ergebnis zu erreichen mit DQL Ansatz, aber ohne succe ss. Ich tat dies in rohen SQL, sondern gibt ein Array:
$em = $this->getDoctrine()->getManager();
$query = "SELECT *,
CASE tipodemonstrativo
WHEN 'PB' THEN CONCAT(anoreferencia, '-03-31')
WHEN 'SE' THEN CONCAT(anoreferencia, '-06-30')
WHEN 'SB' THEN CONCAT(anoreferencia, '-09-30')
WHEN 'AN' THEN CONCAT(anoreferencia, '-12-31')
END AS referencia
FROM demonstrativofinanceiro
ORDER BY referencia DESC
LIMIT 4";
$stmt = $em->getConnection()->prepare($query);
$stmt->execute();
$result = $stmt->fetchAll();
Aber dieses Ergebnis in einem Array, und alle meine Ansichten war das Objekt fertig ... I `ll müssen viele Seiten ändern, wenn ich ein Array abfragen.
Kann mir jemand dabei helfen? Vielen Dank!!
Froh, dass es funktioniert hat! –