Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Problema con sentencia SQL

Estas en el tema de Problema con sentencia SQL en el foro de SQL Server en Foros del Web. Hola a todos: Tengo una tabla que esta más o menos de esta manera: Articulo Movimiento Entrada/Salida Cantidad A 1 E 20 B 1 E ...
  #1 (permalink)  
Antiguo 02/08/2011, 10:24
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Problema con sentencia SQL

Hola a todos:

Tengo una tabla que esta más o menos de esta manera:

Articulo Movimiento Entrada/Salida Cantidad
A 1 E 20
B 1 E 30
C 1 E 10
A 2 S 5
A 2 S 3

Y quiero obtener una consulta que me regrese lo siguiente:

Articulo Entradas Salidas
A 20 8
B 30 0
B 10 0

Hice algo asi:


SELECT SUM(ent.cantidad) AS 'entradas',
SUM(sal.cantidad) AS 'salidas',
tablaarticulo.descripcion, tablaarticulo.articulo
FROM tablaarticulo LEFT JOIN movimientos sal ON (tablaarticulo.articulo = sal.articulo AND sal.Entrada/Salida = 'S' and sal.Fecha >= '20110701' AND sal.Fecha <= '20110731')
LEFT JOIN movimientos ent ON (tablaarticulo.articulo = ent.articulo AND ent.Entrada/Salida = 'E' AND ent.fecha >= '2011001' AND ent.Fecha <= '20110731')
GROUP BY tablaarticulo.articulo, tablaarticulo.descripcion

Sin embargo, no me trae la informacion de manera correcta...

¿Alguien me podrá asesorar en que me estoy equivocando?

Saludos...
  #2 (permalink)  
Antiguo 02/08/2011, 10:36
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Problema con sentencia SQL

Código SQL:
Ver original
  1. CREATE TABLE #table
  2. (
  3. articulo VARCHAR(2),
  4. movimiento INT,
  5. entrada_salida VARCHAR(2),
  6. cantidad INT)
  7.  
  8. INSERT INTO #table VALUES ('A',1,'E',20)
  9. INSERT INTO #table VALUES ('B',1,'E',30)
  10. INSERT INTO #table VALUES ('C',1,'E',10)
  11. INSERT INTO #table VALUES ('A',2,'S',5)
  12. INSERT INTO #table VALUES ('A',2,'S',3)
  13.  
  14.  
  15. SELECT
  16. SUM(isnull(entrada,0)) AS entrada, SUM(isnull(salida,0)) AS salida, articulo
  17. FROM(
  18. SELECT
  19. CASE
  20. WHEN entrada_salida='S' THEN SUM(cantidad) END AS salida,
  21. CASE
  22. WHEN entrada_salida='E' THEN SUM(cantidad) END AS entrada,
  23. articulo
  24. FROM #table GROUP BY articulo,entrada_salida
  25. ) AS t1 GROUP BY articulo

Saludos!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: select, sentencia, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:27.