Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Inconveniente en subconsultas

Estas en el tema de Inconveniente en subconsultas en el foro de SQL Server en Foros del Web. Hola, primero que todo mis saludos a la comunidad. Resulta que me encuentro en un proyecto y tengo la siguiente consulta Mysql que requiero pasar ...
  #1 (permalink)  
Antiguo 06/02/2016, 11:25
 
Fecha de Ingreso: agosto-2009
Mensajes: 45
Antigüedad: 14 años, 8 meses
Puntos: 2
Inconveniente en subconsultas

Hola, primero que todo mis saludos a la comunidad.

Resulta que me encuentro en un proyecto y tengo la siguiente consulta Mysql que requiero pasar a SQL Server (no soy muy diestro en este ultimo gestor)

Código MySQL:
Ver original
  1. select re.retiroEquiposId, re.fechaActa, MONTH(re.fechaActa) mes, YEAR(re.fechaActa) ano,
  2.            sum((select count(*) from retiroEquipos.retiroEquipos where tipoEquipoId=1 and retiroEquiposId=re.retiroEquiposId)) pc,
  3.            sum((select count(*) from retiroEquipos.retiroEquipos where tipoEquipoId=2 and retiroEquiposId=re.retiroEquiposId)) note,
  4.            sum((select count(*) from retiroEquipos.retiroEquipos where tipoEquipoId=3 and retiroEquiposId=re.retiroEquiposId)) aio
  5.     from retiroEquipos.retiroEquipos re
  6.     where
  7.     re.proyectoEquipoId=1
  8.         and year(re.fechaActa) between 2015 and 2016
  9.     group by re.retiroEquiposId, re.fechaActa
  10.     order by re.fechaActa

La consulta anterior funciona perfectamente en mysql y retorna todos los equipos por categoria agrupados por mes.

Me aparece el siguiente error:

Mens. 130, Nivel 15, Estado 1, Línea 3
No es posible usar una función de agregado con una expresión que contiene un agregado o una subconsulta.
Mens. 130, Nivel 15, Estado 1, Línea 4
No es posible usar una función de agregado con una expresión que contiene un agregado o una subconsulta.
Mens. 130, Nivel 15, Estado 1, Línea 5
No es posible usar una función de agregado con una expresión que contiene un agregado o una subconsulta.

Claramente este error está relacionado con las 3 subconsultas, pero la verdad no tengo idea como solucionarlo ¿Qué puedo hacer?

Agradecido de antemano por cualquier ayuda.
Un saludo!

Última edición por Rro237; 06/02/2016 a las 12:10
  #2 (permalink)  
Antiguo 06/02/2016, 13:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Inconveniente en subconsultas

algo asi

Código SQL:
Ver original
  1. SELECT retiroequiposid,fechaacta,mes,ano,SUM(pc) AS pc,SUM(note) AS note, SUM(aio) AS aio FROM(
  2. SELECT re.retiroequiposid,re.fechaacta, datepart(MONTH,re.fechaacta) AS mes, datepar(yyyy,re.fechaacta) AS ano, CASE WHEN tipoequipoid=1 THEN COUNT(1) END AS pc,
  3. CASE WHEN tipoequipoid=2 THEN COUNT(1) END AS note,
  4. CASE WHEN tipoequipoid31 THEN COUNT(1) END AS aio
  5. FROM retirosequipos.retirosequipos AS re
  6. WHERE re.proyectoequipoid IN (1,2,3) AND datepart(yyyy,re.fechaacta) BETWEEN 2015 AND 2016
  7. ) AS t1
  8. GROUP BY retiroequiposid,fechaacta
  9. ORDER BY fechaacta
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: fecha, server, sql, subconsultas
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 22:20.