Unir 3 Select en uno solo
Publicado por Juan (6 intervenciones) el 07/08/2008 11:38:18
Hola!
Necesito unir tres select diferentes en una sola. Cada select devuelve una tabla con unos ciertos valores y lo que necesito es unirlas para que todos los valores aparezcan en una sola tabla.
Son estas:
SELECT S.id_tipo, P.Ano, P.Mes, SUM(P.Importe) AS Suma
FROM im_SubTipos AS S INNER JOIN
im_ImpPres AS P INNER JOIN (
SELECT id_Actuacion, MIN(AnoMesAct) AS Mini, Ano
FROM im_ImpPres AS im_ImpPres_1
GROUP BY id_Actuacion, Ano
HAVING (Ano = @Anio )
) AS M ON P.Ano = M.Ano AND P.AnoMesAct = M.Mini
AND P.id_Actuacion = M.id_Actuacion INNER JOIN
im_Actuaciones AS A ON P.id_Actuacion = A.id_Actuacion
ON S.id_SubT = A.id_SubT
AND S.id_tipo = A.Id_Tipo
AND S.id_Activ = A.id_Activ
AND S.id_Pais = A.id_Pais
GROUP BY S.id_tipo, P.Ano, P.Mes
ORDER BY S.id_tipo, P.Ano, P.Mes
end
SELECT S.id_tipo, P.Ano, P.Mes, SUM(P.Importe) AS Suma
FROM im_SubTipos AS S INNER JOIN
im_ImpPres AS P INNER JOIN (
SELECT id_Actuacion, MAX(AnoMesAct) AS Maxi, Ano
FROM im_ImpPres AS im_ImpPres_1
GROUP BY id_Actuacion, Ano
HAVING (Ano = @Anio )
) AS M ON P.Ano = M.Ano AND P.AnoMesAct = M.Maxi
AND P.id_Actuacion = M.id_Actuacion INNER JOIN
im_Actuaciones AS A ON P.id_Actuacion = A.id_Actuacion
ON S.id_SubT = A.id_SubT
AND S.id_tipo = A.Id_Tipo
AND S.id_Activ = A.id_Activ
AND S.id_Pais = A.id_Pais
GROUP BY S.id_tipo, P.Ano, P.Mes
ORDER BY S.id_tipo, P.Ano, P.Mes
end
SELECT S.id_tipo, I.Anio, I.Mes, SUM(I.Valor) AS Suma
FROM im_SubTipos AS S INNER JOIN
im_Actuaciones AS A ON S.id_Pais = A.id_Pais
AND S.id_Activ = A.id_Activ
AND S.id_tipo = A.Id_Tipo
AND S.id_SubT = A.id_SubT INNER JOIN
im_ConceptosImp AS I ON A.id_Actuacion = I.id_Actuacion INNER JOIN (
SELECT id_Actuacion, --MAX(AnoMesAct) AS Maxi,
Anio, TipoImporte
FROM im_ConceptosImp AS im_ConceptosImp_1
GROUP BY id_Actuacion, Anio, TipoImporte
HAVING (Anio = @Anio )
AND (TipoImporte = 're')
) AS M ON I.TipoImporte = M.TipoImporte
AND I.Anio = M.Anio
AND I.id_Actuacion = M.id_Actuacion
--And I.AnoMesAct = M.Maxi
--AND I.Mes <= @Mes
GROUP BY S.id_tipo, I.Anio, I.Mes, A.id_Conces
--HAVING(A.id_Conces = 25)
ORDER BY S.id_tipo, I.Anio, I.Mes
end
Muchas gracias!
Necesito unir tres select diferentes en una sola. Cada select devuelve una tabla con unos ciertos valores y lo que necesito es unirlas para que todos los valores aparezcan en una sola tabla.
Son estas:
SELECT S.id_tipo, P.Ano, P.Mes, SUM(P.Importe) AS Suma
FROM im_SubTipos AS S INNER JOIN
im_ImpPres AS P INNER JOIN (
SELECT id_Actuacion, MIN(AnoMesAct) AS Mini, Ano
FROM im_ImpPres AS im_ImpPres_1
GROUP BY id_Actuacion, Ano
HAVING (Ano = @Anio )
) AS M ON P.Ano = M.Ano AND P.AnoMesAct = M.Mini
AND P.id_Actuacion = M.id_Actuacion INNER JOIN
im_Actuaciones AS A ON P.id_Actuacion = A.id_Actuacion
ON S.id_SubT = A.id_SubT
AND S.id_tipo = A.Id_Tipo
AND S.id_Activ = A.id_Activ
AND S.id_Pais = A.id_Pais
GROUP BY S.id_tipo, P.Ano, P.Mes
ORDER BY S.id_tipo, P.Ano, P.Mes
end
SELECT S.id_tipo, P.Ano, P.Mes, SUM(P.Importe) AS Suma
FROM im_SubTipos AS S INNER JOIN
im_ImpPres AS P INNER JOIN (
SELECT id_Actuacion, MAX(AnoMesAct) AS Maxi, Ano
FROM im_ImpPres AS im_ImpPres_1
GROUP BY id_Actuacion, Ano
HAVING (Ano = @Anio )
) AS M ON P.Ano = M.Ano AND P.AnoMesAct = M.Maxi
AND P.id_Actuacion = M.id_Actuacion INNER JOIN
im_Actuaciones AS A ON P.id_Actuacion = A.id_Actuacion
ON S.id_SubT = A.id_SubT
AND S.id_tipo = A.Id_Tipo
AND S.id_Activ = A.id_Activ
AND S.id_Pais = A.id_Pais
GROUP BY S.id_tipo, P.Ano, P.Mes
ORDER BY S.id_tipo, P.Ano, P.Mes
end
SELECT S.id_tipo, I.Anio, I.Mes, SUM(I.Valor) AS Suma
FROM im_SubTipos AS S INNER JOIN
im_Actuaciones AS A ON S.id_Pais = A.id_Pais
AND S.id_Activ = A.id_Activ
AND S.id_tipo = A.Id_Tipo
AND S.id_SubT = A.id_SubT INNER JOIN
im_ConceptosImp AS I ON A.id_Actuacion = I.id_Actuacion INNER JOIN (
SELECT id_Actuacion, --MAX(AnoMesAct) AS Maxi,
Anio, TipoImporte
FROM im_ConceptosImp AS im_ConceptosImp_1
GROUP BY id_Actuacion, Anio, TipoImporte
HAVING (Anio = @Anio )
AND (TipoImporte = 're')
) AS M ON I.TipoImporte = M.TipoImporte
AND I.Anio = M.Anio
AND I.id_Actuacion = M.id_Actuacion
--And I.AnoMesAct = M.Maxi
--AND I.Mes <= @Mes
GROUP BY S.id_tipo, I.Anio, I.Mes, A.id_Conces
--HAVING(A.id_Conces = 25)
ORDER BY S.id_tipo, I.Anio, I.Mes
end
Muchas gracias!
Valora esta pregunta


0