Error al unir consultas
Publicado por Eduardo Otiniano (7 intervenciones) el 19/05/2017 17:37:18
1
2
3
4
SELECT Month([Reporte Tecnico].Fecha) AS Mes, Count(HistorialFallas.[Repuestos Afectados].Value) AS Disco
FROM [Reporte Tecnico] INNER JOIN HistorialFallas ON [Reporte Tecnico].[Nro] = HistorialFallas.[Nro R/T]
WHERE HistorialFallas.[Repuestos Afectados].Value="Disco Duro"
GROUP BY Month([Reporte Tecnico].Fecha);
Hice esta consulta y me da resultados erróneos, lo solucioné así:
1
2
3
4
5
SELECT Mes, Count(Disco) AS [Disco Duro]
FROM (SELECT Month([Reporte Tecnico].Fecha) AS Mes, HistorialFallas.[Repuestos Afectados].Value AS Disco
FROM [Reporte Tecnico] INNER JOIN HistorialFallas ON [Reporte Tecnico].[Nro] = HistorialFallas.[Nro R/T]
WHERE HistorialFallas.[Repuestos Afectados].Value="Disco Duro")
GROUP BY Mes;
Pero no entiendo porque salen resultados diferentes
No quiero usar el segundo caso porque en estas 2 consultas:
1
2
3
4
5
6
7
8
9
10
11
SELECT Mes, Count(Disco) AS [Disco Duro], 0 as [Placa Madre]
FROM (SELECT Month([Reporte Tecnico].Fecha) AS Mes, HistorialFallas.[Repuestos Afectados].Value AS Disco
FROM [Reporte Tecnico] INNER JOIN HistorialFallas ON [Reporte Tecnico].[Nro] = HistorialFallas.[Nro R/T]
WHERE HistorialFallas.[Repuestos Afectados].Value="Disco Duro")
GROUP BY Mes
UNION
SELECT Mes, 0 as [Disco Duro], Count(Placa) AS [Placa Madre]
FROM (SELECT Month([Reporte Tecnico].Fecha) AS Mes, HistorialFallas.[Repuestos Afectados].Value AS Placa
FROM [Reporte Tecnico] INNER JOIN HistorialFallas ON [Reporte Tecnico].[Nro] = HistorialFallas.[Nro R/T]
WHERE HistorialFallas.[Repuestos Afectados].Value="Placa madre")
GROUP BY Mes;
Cada consulta por separado funciona correctamente, pero al unirlos me sale el error <Su consulta no incluye la expresión especificada 'mes' como parte de una función de agregado>
En cambio con la consulta del primer caso la UNION si funciona, pero los datos son erróneos
Gracias anticipadamente a quien pueda ayudarme
Valora esta pregunta
0