Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/03/2011, 08:04
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Ayuda con consulta

Hola yera2002:

La consulta que pones no ayuda en gran medida, pues estás aplicando condiciones diferentes a las que planteas en el problema y estás utilizando campos que no defines al inicio:

Código:
tablasecundaria.estado = 'CON' 
tablaprincipal.id = tablasecundaria.id_rollo 

Voy a partir de lo que entendí en la explicación de tu problema, si hay algo que esté mal lo comentas. Intenta con esto:

Código SQL:
Ver original
  1. DECLARE @TablaPrincipal TABLE (id INT, descrip VARCHAR(20), cantidad INT)
  2. INSERT INTO @TablaPrincipal VALUES (1, 'Art 1', 20)
  3. INSERT INTO @TablaPrincipal VALUES (2, 'Art 2', 50)
  4.  
  5. DECLARE @TablaSecundaria TABLE (id INT, id_tabla_principal INT, cantidad INT, estado VARCHAR(20))
  6. INSERT INTO @TablaSecundaria VALUES (1, 1, -10, 'Pendiente')
  7. INSERT INTO @TablaSecundaria VALUES (2, 1, -1, 'Pendiente')
  8. INSERT INTO @TablaSecundaria VALUES (3, 1, -2, 'Pendiente')
  9. INSERT INTO @TablaSecundaria VALUES (4, 1, -2, 'Confirmado')
  10. INSERT INTO @TablaSecundaria VALUES (5, 2, -2, 'Pendiente')
  11.  
  12. SELECT T1.descrip, T1.cantidad + T2.total_suma total  FROM @TablaPrincipal T1 INNER JOIN
  13. (
  14. SELECT id_tabla_principal, SUM(cantidad) total_suma FROM @TablaSecundaria
  15. WHERE estado = 'Pendiente' GROUP BY id_tabla_principal
  16. ) T2 ON T1.id = T2.id_tabla_principal

El resultado de esta consulta sería el siguiente:

Código:
descrip|total
--------------------------
Art 1|7
Art 2|48
Aquí estoy haciendo algunas consideraciones:
1. En la tabla Principal sólo aparece una vez cada artículo
2. En la tabla secundaria todas las cantidades aparecen con signo negativo.

Haz la prueba y nos comentas los resultados

Saludos
Leo.