SQL - SUMA DE COLUMNAS DE DIFERENTES TABLAS

 
Vista:

SUMA DE COLUMNAS DE DIFERENTES TABLAS

Publicado por SISTEMOLOGO (20 intervenciones) el 20/09/2005 05:31:19
SALUDOS
Tengo una duda que no he podido solucionar. Tengo dos tablas en las que almaceno ventas;
en una de ellas almaceno las ventas del día y en otras almaceno las devoluciones sobre esas ventas.
Lo que quiero hacer es obtener un reporte de las ventas NETAS del día, es decir las ventas
que se hecieron menos las devoluciones. Pero esto se debe hacer únicamente en la cantidad,
por ejemplo, si en la venta número 123 se vendierón 5 artículos X, y de esa venta se hace
una devolución de 3 artículos X, el reporte de ventas netas debe ser de 2 artículos X.
Si alguien me puede decir una posible solución, se lo agradeceré muchísimo. GRACIAS
SALUDOS
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
sin imagen de perfil

RE:SUMA DE COLUMNAS DE DIFERENTES TABLAS

Publicado por Liliana (426 intervenciones) el 20/09/2005 13:35:04
Hola,
Te mando este código sin probar, la función COALESCE te muestra el primer dato que no es nulo, porque podés tener movimientos en una tabla y no en la otra para el mismo artículo y misma fecha.
Por el mismo motivo usa FULL JOIN.
Espero que te sirva,
Liliana.

SELECT Articulo = COALESCE(V.Articulo, D.Articulo),
Fecha = COALESCE(V.Fecha, D.Fecha),
Cantidad = SUM(V.Cantidad - D.Cantidad)
FROM Ventas V
FULL JOIN Devoluciones D
ON V.Articulo = D.Articulo AND V.Fecha = D.Fecha
GROUP BY COALESCE(V.Articulo, D.Articulo),
COALESCE(V.Fecha, D.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

RE:SUMA DE COLUMNAS DE DIFERENTES TABLAS

Publicado por SISTEMOLOGO (20 intervenciones) el 22/09/2005 04:44:22
AGRADEZCO, LA RESPUESTA ES BUENA , PERO NO CONSIGO OBTENER LO QUE NECESITO, ALGUIEN TIENE ALGUNA OTRA IDEA?, ...GRACIAS
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
sin imagen de perfil

RE:SUMA DE COLUMNAS DE DIFERENTES TABLAS

Publicado por Liliana (426 intervenciones) el 22/09/2005 14:44:42
Hola,
Te mando el ejemplo con tablas y datos de ejemplo, recreando el escenario que nos planteas, si no es así, nos ayudaría que nos des más información, espero que te sirva:

CREATE TABLE #Ventas
(Fecha datetime, Articulo smallint, Cantidad smallint)
INSERT #Ventas SELECT '20050101', 1, 10
INSERT #Ventas SELECT '20050101', 1, 15
INSERT #Ventas SELECT '20050101', 2, 30
INSERT #Ventas SELECT '20050102', 2, 10
INSERT #Ventas SELECT '20050103', 1, 20
INSERT #Ventas SELECT '20050103', 2, 20

CREATE TABLE #Devoluciones
(Fecha datetime, Articulo smallint, Cantidad smallint)
INSERT #Devoluciones SELECT '20050101', 2, 3
INSERT #Devoluciones SELECT '20050102', 1, 5
INSERT #Devoluciones SELECT '20050103', 1, 1
INSERT #Devoluciones SELECT '20050103', 2, 1

SELECT Articulo = COALESCE(V.Articulo, D.Articulo),
Fecha = COALESCE(V.Fecha, D.Fecha),
Cantidad = SUM(ISNULL(V.Cantidad,0) - ISNULL(D.Cantidad,0))
FROM #Ventas V
FULL JOIN #Devoluciones D
ON V.Articulo = D.Articulo AND V.Fecha = D.Fecha
GROUP BY COALESCE(V.Articulo, D.Articulo),
COALESCE(V.Fecha, D.Fecha)

Articulo Fecha Cantidad
-------- ------------------------------------------------------ -----------
1 2005-01-01 00:00:00.000 25
2 2005-01-01 00:00:00.000 27
1 2005-01-02 00:00:00.000 -5
2 2005-01-02 00:00:00.000 10
1 2005-01-03 00:00:00.000 19
2 2005-01-03 00:00:00.000 19
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

RE:SUMA DE COLUMNAS DE DIFERENTES TABLAS

Publicado por SISTEMOLOGO (20 intervenciones) el 22/09/2005 17:44:12
DESPUÉS DE HACER UN ANÁLISIS DETENIDAMENTE, HE NOTADO QUE LA SOLUCIÓN QUE ME HAN DADO A LA
PREGUNTA QUE PLANTEE TOMA COMO REFERENCIA LA FECHA, AUNQUE ES CORRECTO, NO SIEMPRE ES ASÍ,
SINO QUE LAS VENTAS LAS CONTROO POR MEDIO DE UN FOLIO DE VENTA. SIENDO MÁS ESPECÍFICO,
SUPONIENDO QUE EN EL DÍA 01/01/2005 HAGO LAS VENTAS CON FOLIO 3,4 Y 5 DE LA SIGUIENTE MANERA:

FOLIO ARTICULO CANTIDAD
----- -------- --------
3______1_________4
3______2_________1
4______5_________3
5______3_________2
5______6_________1

Y EN EL DÍA 05/01/2005 HAGO DEVOLUCIONES CORRESPONDIENTES A LAS VENTAS 4 Y 5 DE LA SIGUIENTE MANERA:

FOLIO ARTICULO CANTIDAD
----- -------- --------
4______5_________2
5______3_________1
5______6_________1

DE TAL MENERA QUE EN LA CONSULTA OBTENGA:

FOLIO ARTICULO CANTIDAD
----- -------- --------
3______1_________4
3______2_________1
4______5_________1
5______3_________1
5______6_________0
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
sin imagen de perfil

RE:SUMA DE COLUMNAS DE DIFERENTES TABLAS

Publicado por Liliana (426 intervenciones) el 22/09/2005 18:28:43
Fue planteado de esa manera por el pedido original ("Lo que quiero hacer es obtener un reporte de las ventas NETAS del día"), pero podés reemplazar Fecha por Folio sin problemas.
Si quisieras los dos datos entonces solo tendrás que agregar Folio a la consulta:

SELECT Fecha = COALESCE(V.Fecha, D.Fecha), Folio = COALESCE(V.Folio, D.Folio), Articulo = COALESCE(V.Articulo, D.Articulo),
Cantidad = SUM(ISNULL(V.Cantidad,0) - ISNULL(D.Cantidad,0))
FROM #Ventas V
FULL JOIN #Devoluciones D
ON V.Articulo = D.Articulo AND V.Fecha = D.Fecha
GROUP BY COALESCE(V.Fecha, D.Fecha),
COALESCE(V.Folio, D.Folio), COALESCE(V.Articulo, D.Articulo)
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

PROBLEMA RESUELTO

Publicado por SISTEMOLOGO (20 intervenciones) el 22/09/2005 18:59:08
LILIANA:
AGRADEZCO MUCHO TU AYUDA MI DUDA QUEDÓ RESUELTA, ...

GRACIAS
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

RE:SUMA DE COLUMNAS DE DIFERENTES TABLAS

Publicado por Gabriel (1 intervención) el 10/07/2014 16:44:36
Hola Liliana,

¿Cómo puedo hacer esto pero en vez que sean CREATE TABLE, sean consultas con una columna que es el resultado de un count?

Espero tu respuesta
Saludos
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