SQL - unir datos de 2 tablas

 
Vista:

unir datos de 2 tablas

Publicado por alfonso (3 intervenciones) el 10/04/2012 08:37:03
Tengo 2 tabla "COMPRAS" Y "VENTAS" ambas tienen en sus campos: ID, Fecha, Monto.
Lo que quiero es listar las Ventas y las Compras por día, dando como parámetro el año y el mes

DIA - Compra - Venta
fecha 1 - 300 - 95
fecha 2 - null - 80
fecha 3 - null - 90
fecha 4 - 280 - null
fecha 5 - 250 - 75
.
:
así debería ser el resultado de la consulta, ya que existe la posibilidad que un determinado día se no se hallan efectuado compras y otros días no se hallan registrado ventas. (sería recomendable que en vez de "null" mostrase Cero) ....Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 135
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

unir datos de 2 tablas

Publicado por xve (284 intervenciones) el 10/04/2012 10:01:27
Hola Alfonso, no indicas que tipo de base de datos estas utilizando, pero yo creo que te funcionaria con un simple join, no?

algo así:
SELECT * FROM
Tabla1 t1 JOIN Tabla2 t2 ON t1.Fecha=t2.Fecha

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

unir datos de 2 tablas

Publicado por Carlos Guillermo (1 intervención) el 10/04/2012 14:45:50
Ey chili, si estas trabajando con DATETIME el campo de fecha estaría acompañado de la hora, entonces para que logres el efecto deseado la sentencia quedaría algo así en SQL SERVER:

select * from venta v
full join COMPRA c
on convert(char(10),c.fecha,112) = convert(char(10),v.fecha,112)

Lógicamente en lugar del asterisco deberás colocar los campo q te interesa mostrar. Y para que realices el totalizado tendrás q continuar efectuando los INNER JOIN correspondientes con tus tablas compra_detalle y venta_detalle agrupandolos con un SUM.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

unir datos de 2 tablas

Publicado por alfonso (3 intervenciones) el 10/04/2012 16:38:43
gracias sus aportes pero las recomendaciones que me dan hasta ahora ya las había probado... el problema con la solución que Uds me acaban de dar, es que solo se van a mostrar los registros en donde las existan datos con las mismas fechas en ambas tablas, es decir que en la consulta solo me mostrara algo asi:

DIA - Compra - Venta
fecha 1 - 300 - 95
fecha 5 - 250 - 75
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 135
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

unir datos de 2 tablas

Publicado por xve (284 intervenciones) el 10/04/2012 17:06:08
Hola Alfonso, con left join y right join puedes sacar los valores nulos de la tabla de la izquierda o de la derecha, pero los dos a la vez no he encontrado como hacerlo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

unir datos de 2 tablas

Publicado por Rolando Berrú (1 intervención) el 12/04/2012 07:27:34
Has probado FULL OUTER JOIN?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

unir datos de 2 tablas

Publicado por alfonso (3 intervenciones) el 19/04/2012 23:25:00
Gracias a todos por el deseo de ayudarme, pero ya encontré la manera de hacerlo, aquí dejo la respuesta... =)

select fecha, SUM(compra) AS COM, SUM(venta) AS VEN from (
SELECT C.FECHACOMPRA as fecha, C.MONTOCOMPRA as compra, V.MontoVenta as venta
FROM Compras C
FULL OUTER JOIN Ventas V
ON C.IdCompra<0
where C.MontoCompra>0

union ALL

SELECT V.FechaVenta as fecha, C.MONTOCOMPRA as compra, V.MontoVenta as venta
FROM Compras C
FULL OUTER JOIN Ventas V
ON V.IdVenta<0
where V.MontoVenta>0
) as T
group by fecha
ORDER BY fecha
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar