
Unión de dos tablas
Publicado por Adrian (1 intervención) el 20/05/2014 16:59:11
Hola,
Hace poco que empecé con SQL y aun estoy un poco verde. Expongo el problema que tengo por si alguien puede ayudarme.
Mi objetivo es combinar dos tablas. La primera tabla contiene la información de los albaranes de venta de los clientes. La segunda tabla contiene la información del Stock de los artículos.
El resultado de la consulta esperado es el código de articulo, la suma de la unidades vendidas en los últimos 30 días (extraído de la tabla de líneas albarán cliente ) y la suma del Stock del artículo en cuestión.
He probado con el siguiente código para un artículo determinado:
SELECT LineasAlbaranCliente.CodigoArticulo, SUM(LineasAlbaranCliente.Unidades) AS Vendidas,SUM(AcumuladoStock.UnidadSaldoTipo_) As Stock
FROM LineasAlbaranCliente LEFT OUTER JOIN
AcumuladoStock ON LineasAlbaranCliente.CodigoEmpresa = AcumuladoStock.CodigoEmpresa AND
LineasAlbaranCliente.CodigoArticulo = AcumuladoStock.CodigoArticulo
WHERE (LineasAlbaranCliente.CodigoArticulo = '00090000') AND (DATEDIFF(day, LineasAlbaranCliente.FechaAlbaran, GETDATE()) < 30)
AND (AcumuladoStock.Periodo = 99) AND (AcumuladoStock.Ejercicio = 2014)
GROUP BY LineasAlbaranCliente.CodigoArticulo
El problema es que el resultado final no es correcto. El error que yo veo es que en la tabla LineasAlbaranCliente hay tres lineas para el artículo en cuestión y en la tabla AcumuladoStock otras tres lineas, cuando combino las tablas para cada valor de Lineas Albarán Cliente pone cada unos de los valores de AcumuladoStock. Quitando el sumatorio este es el resultado de la consulta:
Cod.Art Vendidas Stock
00090000 2.0000000000 0.0000000000
00090000 2.0000000000 2.0000000000
00090000 2.0000000000 102.0000000000
00090000 18.0000000000 0.0000000000
00090000 18.0000000000 2.0000000000
00090000 18.0000000000 102.0000000000
00090000 24.0000000000 0.0000000000
00090000 24.0000000000 2.0000000000
00090000 24.0000000000 102.0000000000
Si alguien puede ayudarme para que me salga bien la consulta
Gracias.
Hace poco que empecé con SQL y aun estoy un poco verde. Expongo el problema que tengo por si alguien puede ayudarme.
Mi objetivo es combinar dos tablas. La primera tabla contiene la información de los albaranes de venta de los clientes. La segunda tabla contiene la información del Stock de los artículos.
El resultado de la consulta esperado es el código de articulo, la suma de la unidades vendidas en los últimos 30 días (extraído de la tabla de líneas albarán cliente ) y la suma del Stock del artículo en cuestión.
He probado con el siguiente código para un artículo determinado:
SELECT LineasAlbaranCliente.CodigoArticulo, SUM(LineasAlbaranCliente.Unidades) AS Vendidas,SUM(AcumuladoStock.UnidadSaldoTipo_) As Stock
FROM LineasAlbaranCliente LEFT OUTER JOIN
AcumuladoStock ON LineasAlbaranCliente.CodigoEmpresa = AcumuladoStock.CodigoEmpresa AND
LineasAlbaranCliente.CodigoArticulo = AcumuladoStock.CodigoArticulo
WHERE (LineasAlbaranCliente.CodigoArticulo = '00090000') AND (DATEDIFF(day, LineasAlbaranCliente.FechaAlbaran, GETDATE()) < 30)
AND (AcumuladoStock.Periodo = 99) AND (AcumuladoStock.Ejercicio = 2014)
GROUP BY LineasAlbaranCliente.CodigoArticulo
El problema es que el resultado final no es correcto. El error que yo veo es que en la tabla LineasAlbaranCliente hay tres lineas para el artículo en cuestión y en la tabla AcumuladoStock otras tres lineas, cuando combino las tablas para cada valor de Lineas Albarán Cliente pone cada unos de los valores de AcumuladoStock. Quitando el sumatorio este es el resultado de la consulta:
Cod.Art Vendidas Stock
00090000 2.0000000000 0.0000000000
00090000 2.0000000000 2.0000000000
00090000 2.0000000000 102.0000000000
00090000 18.0000000000 0.0000000000
00090000 18.0000000000 2.0000000000
00090000 18.0000000000 102.0000000000
00090000 24.0000000000 0.0000000000
00090000 24.0000000000 2.0000000000
00090000 24.0000000000 102.0000000000
Si alguien puede ayudarme para que me salga bien la consulta
Gracias.
Valora esta pregunta


0