Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/12/2010, 12:57
mfernandez1982
 
Fecha de Ingreso: abril-2010
Mensajes: 38
Antigüedad: 14 años
Puntos: 0
Respuesta: Saldos dinamicos

Compañeros, increible he podido dar con la solucion, la cual consiste en la siguiente.

1.- hacer un distinct a la columna codigo y hacerle un fulll
2.- mezclarla con las salidas y entradas
3.- en caso de tener null, reemplazarlas por 0

por siaca este es el codigo que me funciona, cualquier otra propuesta bienvenida sera


SELECT DISTINCT
REGISTROS.CODIGO, ISNULL(ENTRADAS.ENTRADAS, 0) AS ENTRADAS, ISNULL(SALIDAS.SALIDAS, 0) AS SALIDAS, ISNULL(ENTRADAS.ENTRADAS, 0)
- ISNULL(SALIDAS.SALIDAS, 0) AS SALDO
FROM REGISTROS FULL OUTER JOIN
(SELECT CODIGO, SUM(CANTIDAD) AS ENTRADAS
FROM REGISTROS AS reg
WHERE (CODIGO BETWEEN @intinicial AND @intfinal) AND (FECHA_REGISTRO BETWEEN @fecha_exist_inicial AND @fecha_exist_final) AND
(TIPO_MOV = 1) AND (CODIGO = CODIGO)
GROUP BY CODIGO) AS ENTRADAS ON ENTRADAS.CODIGO = REGISTROS.CODIGO FULL OUTER JOIN
(SELECT CODIGO, SUM(CANTIDAD) AS SALIDAS
FROM REGISTROS AS reg
WHERE (CODIGO BETWEEN @intinicial AND @intfinal) AND (FECHA_REGISTRO BETWEEN @fecha_exist_inicial AND @fecha_exist_final) AND
(TIPO_MOV = 2) AND (CODIGO = CODIGO)
GROUP BY CODIGO) AS SALIDAS ON SALIDAS.CODIGO = REGISTROS.CODIGO