Como relaciono el resultado de 2 consultas

20/09/2006 - 17:53 por Erik Martinez | Informe spam
hola a todos

Necesito de su sabia ayuda, cual es el metodo mas recomendado para
relacionar 2 consultas.
por ej.
el resultado que necesito es el siguiente:
mes, cantidadfecha1,cantidadfecha2

tengo una tabla llamada X con la sigte estructura:
fecha1, fecha2, cantidad

la primer consuta seria:
select month(fecha1) as mes, sum(cantidad) as cantidad from X group by
month(fecha1)

la segunda consulta
select month(fecha2) as mes, sum(cantidad) as cantidad from X group by
month(fecha1)

necesito relacionar estas consultas por medio del campo mes.


Espero me ayuden y de antemano muchas gracias.

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
20/09/2006 - 18:52 | Informe spam
Hola,

La verdad que no entiendo lo que necesitas, ambas consultas son identicas,
nos puedes ampliar información ?

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Erik Martinez" <nadie@@microsoft.com> escribió en el mensaje
news:
hola a todos

Necesito de su sabia ayuda, cual es el metodo mas recomendado para
relacionar 2 consultas.
por ej.
el resultado que necesito es el siguiente:
mes, cantidadfecha1,cantidadfecha2

tengo una tabla llamada X con la sigte estructura:
fecha1, fecha2, cantidad

la primer consuta seria:
select month(fecha1) as mes, sum(cantidad) as cantidad from X group by
month(fecha1)

la segunda consulta
select month(fecha2) as mes, sum(cantidad) as cantidad from X group by
month(fecha1)

necesito relacionar estas consultas por medio del campo mes.


Espero me ayuden y de antemano muchas gracias.


Respuesta Responder a este mensaje
#2 Salvador Ramos
20/09/2006 - 18:55 | Informe spam
Perdon, creo que ya entendí, te refieres a algo asi ?

select t1.mes, t2.mes, ...
from (select month(fecha1) as mes, sum(cantidad) as cantidad from X group by
month(fecha1) ) as t1
inner join
(select month(fecha2) as mes, sum(cantidad) as cantidad from X group by
month(fecha1) ) as t2
on t1.month(fecha1) = t2.mont(fecha2)


Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Erik Martinez" <nadie@@microsoft.com> escribió en el mensaje
news:
hola a todos

Necesito de su sabia ayuda, cual es el metodo mas recomendado para
relacionar 2 consultas.
por ej.
el resultado que necesito es el siguiente:
mes, cantidadfecha1,cantidadfecha2

tengo una tabla llamada X con la sigte estructura:
fecha1, fecha2, cantidad

la primer consuta seria:
select month(fecha1) as mes, sum(cantidad) as cantidad from X group by
month(fecha1)

la segunda consulta
select month(fecha2) as mes, sum(cantidad) as cantidad from X group by
month(fecha1)

necesito relacionar estas consultas por medio del campo mes.


Espero me ayuden y de antemano muchas gracias.


Respuesta Responder a este mensaje
#3 Alejandro Mesa
20/09/2006 - 19:28 | Informe spam
Erik,

Concuerdo con Salvador en que la consulta que deseas esta un poco confusa.
Creo que en la segunda consulta estas agrupando por la columna incorrecta
(month(fecha1)), pues en la lista de columnas aparece month(fecha2). De todas
maneras tratare con esta sentencia.

select
coalesce(a.f1, b.f2) as month,
a.sum_cantidad_f1,
b.sum_cantidad_f2
from
(
select month(fecha1) as f1, sum(cantidad) as sum_cantidad_f1
from x
group by month(fecha1)
) as a
full outer join
(
select month(fecha2) as f2, sum(cantidad) as sum_cantidad_f2
from x
group by month(fecha2)
) as b
on a.f1 = b.f2
go

Calculamos la sum de cantidades agrupando las filas por el mes de la fecha
en cuestion y usamos los resultados como tablas derivadas. Unimos estas
tablas derivadas mediante un "full outer join" para poder casar tambien las
filas que esten en una tabla y no en la otra en ambas direcciones.


AMB

"Erik Martinez" wrote:

hola a todos

Necesito de su sabia ayuda, cual es el metodo mas recomendado para
relacionar 2 consultas.
por ej.
el resultado que necesito es el siguiente:
mes, cantidadfecha1,cantidadfecha2

tengo una tabla llamada X con la sigte estructura:
fecha1, fecha2, cantidad

la primer consuta seria:
select month(fecha1) as mes, sum(cantidad) as cantidad from X group by
month(fecha1)

la segunda consulta
select month(fecha2) as mes, sum(cantidad) as cantidad from X group by
month(fecha1)

necesito relacionar estas consultas por medio del campo mes.


Espero me ayuden y de antemano muchas gracias.



Respuesta Responder a este mensaje
#4 Erik Martinez
20/09/2006 - 22:20 | Informe spam
Excelente solución Salvador y Alejandro no les había respondido porque me
costo un poco armar esa consulta con el codigo que me enviaron.
ya que no manejo muy bien las condiciones de combinación (Join).
la verdad tienen razón no fui muy explicito en plantearles mi problema

la consulta al final me quedo asi:

SELECT x.mes, x.hecsemb, y.heccos
FROM (SELECT month(genestori.fecsiembra) AS mes,
SUM(dbo.GenLagunas.Hectareas) AS hecsemb
FROM dbo.GenEstOri INNER JOIN
dbo.GenLagunas ON dbo.GenEstOri.IDLaguna = dbo.GenLagunas.IDLaguna
GROUP BY MONTH(dbo.GenEstOri.FecSiembra)) as x
full JOIN
(SELECT month(genestori.fecsiembra + diascult) AS mes,
SUM(dbo.GenLagunas.Hectareas) AS heccos
FROM dbo.GenEstOri INNER JOIN
dbo.GenLagunas ON dbo.GenEstOri.IDLaguna = dbo.GenLagunas.IDLaguna
GROUP BY MONTH(dbo.GenEstOri.fecsiembra + diascult))as y ON x.mes = y.mes
order by x.mes

esto me da como resultado los 3 campos que esperaba:
mes - hectareas a sembrar- hectareas a cosechar

muchisimas gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida