Foros del Web » Programando para Internet » PHP » Symfony »

Doctrine - cómo sumar dos queries

Estas en el tema de Doctrine - cómo sumar dos queries en el foro de Symfony en Foros del Web. Hola amigos, llevo dándole vueltas a algo que no consigo encontrar una solución. Quiero obtener la suma de dos queries, de la siguiente manera: Código: ...
  #1 (permalink)  
Antiguo 13/12/2015, 08:32
 
Fecha de Ingreso: abril-2013
Mensajes: 75
Antigüedad: 9 años, 3 meses
Puntos: 2
Doctrine - cómo sumar dos queries

Hola amigos, llevo dándole vueltas a algo que no consigo encontrar una solución. Quiero obtener la suma de dos queries, de la siguiente manera:

Código:
$dql = "SELECT (
  SELECT SUM(m.localScore)
  FROM MatchBundle:Match m
) + (
  SELECT SUM(m.guestScore)
  FROM MatchBundle:Match m
)";
La query anterior, lo que pretende hacer es sumar los goles de un equipo, los que marca como local más lo que marca cómo visitante. Estos dos números, los suma con la primera SELECT.

Si introduzco el SQL en la consola de phpMyAdmin a pelo, obtengo el resultado, pero con Doctrine me casca. Alguna sugerencia? Gracias de antemano
  #2 (permalink)  
Antiguo 16/12/2015, 08:12
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 9 años, 1 mes
Puntos: 379
Respuesta: Doctrine - cómo sumar dos queries

Debes de recordar que Doctrine realiza consultas usando DQL el cual no es SQL. Si quieres hacer la consulta como esta en el ejemplo utiliza una consulta nativa usando doctrine DBAL: http://symfony.com/doc/current/cookb...rine/dbal.html
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 06/01/2016, 11:48
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 11 años, 6 meses
Puntos: 206
Respuesta: Doctrine - cómo sumar dos queries

SELECT SUM(m.localScore + m.guestScore)
FROM MatchBundle:Match m

Etiquetas: doctrine, queries
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:40.