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 originalDECLARE @TablaPrincipal TABLE (id INT, descrip VARCHAR(20), cantidad INT)
INSERT INTO @TablaPrincipal VALUES (1, 'Art 1', 20)
INSERT INTO @TablaPrincipal VALUES (2, 'Art 2', 50)
DECLARE @TablaSecundaria TABLE (id INT, id_tabla_principal INT, cantidad INT, estado VARCHAR(20))
INSERT INTO @TablaSecundaria VALUES (1, 1, -10, 'Pendiente')
INSERT INTO @TablaSecundaria VALUES (2, 1, -1, 'Pendiente')
INSERT INTO @TablaSecundaria VALUES (3, 1, -2, 'Pendiente')
INSERT INTO @TablaSecundaria VALUES (4, 1, -2, 'Confirmado')
INSERT INTO @TablaSecundaria VALUES (5, 2, -2, 'Pendiente')
SELECT T1.descrip, T1.cantidad + T2.total_suma total FROM @TablaPrincipal T1 INNER JOIN
(
SELECT id_tabla_principal, SUM(cantidad) total_suma FROM @TablaSecundaria
WHERE estado = 'Pendiente' GROUP BY id_tabla_principal
) 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.