Seguimos con el Kardex

03/02/2005 - 16:34 por K | Informe spam
Hola otra vez a todos tengo esta pequeña consulta que arme gracias a la
ayuda

de Maxi...



SELECT COUNT(*) AS Numero, MovimientosCompletos.Movimiento

AS [Nº Movimiento], MovimientosCompletos.CodigoArticulo,

MovimientosCompletos.FechaMovimiento, MovimientosCompletos.Cantidad,

SUM(S.Cantidad) AS Saldo
FROM MovimientosCompletos INNER JOIN
(SELECT MovimientosCompletos.Movimiento,

MovimientosCompletos.FechaMovimiento,

MovimientosCompletos.CodigoArticulo,

MovimientosCompletos.Cantidad
FROM MovimientosCompletos) S ON
MovimientosCompletos.CodigoArticulo = S.CodigoArticulo AND
MovimientosCompletos.FechaMovimiento >= S.FechaMovimiento AND
MovimientosCompletos.Movimiento >= S.Movimiento
GROUP BY MovimientosCompletos.Movimiento,

MovimientosCompletos.FechaMovimiento,

MovimientosCompletos.CodigoArticulo, MovimientosCompletos.Cantidad



Movimientos Completos es una vista donde tengo UNIONES de consultas

separadas por el tipo de Movimiento si es Salida la Cantidad esta en
negativo

y cosas así, la consulta que esta arriba es casi perfecta si no fuera por
que me

devuelve algunos saldos que no son y es porque la numeración de los
movimientos

no concuerda pongo un pequeño ejemplo de los datos devueltos para que se
entienda mejor...



Nº Mov CodigoArticulo Fecha Cant. Saldo

9702678 TRMEBP50W 03 1998-03-31 00:00:00 3000 3000
9702720 TRMEBP50W 03 1998-04-03 00:00:00 -1 2999
9702724 TRMEBP50W 03 1998-04-03 00:00:00 -1 2998
9702734 TRMEBP50W 03 1998-04-03 00:00:00 -2 2996
9702738 TRMEBP50W 03 1998-04-06 00:00:00 -6 2990
9702740 TRMEBP50W 03 1998-04-06 00:00:00 -18 2972
9702744 TRMEBP50W 03 1998-04-06 00:00:00 -4 2968
9702751 TRMEBP50W 03 1998-04-07 00:00:00 -4 2964
9702753 TRMEBP50W 03 1998-04-07 00:00:00 -2 2962
9702769 TRMEBP50W 03 1998-04-07 00:00:00 1 2963
9702763 TRMEBP50W 03 1998-04-08 00:00:00 -2 2960
9702859 TRMEBP50W 03 1998-04-08 00:00:00 1 2962



Como ven todo va bien hasta los últimos 3 Movimientos la consulta saca por

el Orden de las Fechas y de los Numero de Movimiento por lo que de 2963 - 2

le pone 2960 porque no toma en cuenta el Movimiento anterior porque a pesar

de que en su fecha es menor el Nº de Mov es mayor.. pero como se ve
después

se ordena el saldo...



No se como solucionar este problema trate de generar un correlativo

para trabajar con ese campo pero no he podido...



Espero haberme explicado solo me faltaría eso para poder terminar este
kardex



Muchas Gracias por su ayuda
 

Leer las respuestas

#1 Maxi
03/02/2005 - 16:41 | Informe spam
Hola, no pongas la fecha en el querym solo hace comparaciones por numero


MovimientosCompletos.CodigoArticulo = S.CodigoArticulo AND
MovimientosCompletos.Movimiento >= S.Movimiento

Proba asi que deberia funcionar bien


Salu2
Maxi


"" escribió en el mensaje
news:
Hola otra vez a todos tengo esta pequeña consulta que arme gracias a la
ayuda

de Maxi...



SELECT COUNT(*) AS Numero, MovimientosCompletos.Movimiento

AS [Nº Movimiento], MovimientosCompletos.CodigoArticulo,

MovimientosCompletos.FechaMovimiento, MovimientosCompletos.Cantidad,

SUM(S.Cantidad) AS Saldo
FROM MovimientosCompletos INNER JOIN
(SELECT MovimientosCompletos.Movimiento,

MovimientosCompletos.FechaMovimiento,

MovimientosCompletos.CodigoArticulo,

MovimientosCompletos.Cantidad
FROM MovimientosCompletos) S ON
MovimientosCompletos.CodigoArticulo = S.CodigoArticulo AND
MovimientosCompletos.FechaMovimiento >= S.FechaMovimiento AND
MovimientosCompletos.Movimiento >= S.Movimiento
GROUP BY MovimientosCompletos.Movimiento,

MovimientosCompletos.FechaMovimiento,

MovimientosCompletos.CodigoArticulo, MovimientosCompletos.Cantidad



Movimientos Completos es una vista donde tengo UNIONES de consultas

separadas por el tipo de Movimiento si es Salida la Cantidad esta en
negativo

y cosas así, la consulta que esta arriba es casi perfecta si no fuera por
que me

devuelve algunos saldos que no son y es porque la numeración de los
movimientos

no concuerda pongo un pequeño ejemplo de los datos devueltos para que se
entienda mejor...



Nº Mov CodigoArticulo Fecha Cant. Saldo

9702678 TRMEBP50W 03 1998-03-31 00:00:00 3000 3000
9702720 TRMEBP50W 03 1998-04-03 00:00:00 -1 2999
9702724 TRMEBP50W 03 1998-04-03 00:00:00 -1 2998
9702734 TRMEBP50W 03 1998-04-03 00:00:00 -2 2996
9702738 TRMEBP50W 03 1998-04-06 00:00:00 -6 2990
9702740 TRMEBP50W 03 1998-04-06 00:00:00 -18 2972
9702744 TRMEBP50W 03 1998-04-06 00:00:00 -4 2968
9702751 TRMEBP50W 03 1998-04-07 00:00:00 -4 2964
9702753 TRMEBP50W 03 1998-04-07 00:00:00 -2 2962
9702769 TRMEBP50W 03 1998-04-07 00:00:00 1 2963
9702763 TRMEBP50W 03 1998-04-08 00:00:00 -2 2960
9702859 TRMEBP50W 03 1998-04-08 00:00:00 1 2962



Como ven todo va bien hasta los últimos 3 Movimientos la consulta saca por

el Orden de las Fechas y de los Numero de Movimiento por lo que de 2963 -
2

le pone 2960 porque no toma en cuenta el Movimiento anterior porque a
pesar

de que en su fecha es menor el Nº de Mov es mayor.. pero como se ve
después

se ordena el saldo...



No se como solucionar este problema trate de generar un correlativo

para trabajar con ese campo pero no he podido...



Espero haberme explicado solo me faltaría eso para poder terminar este
kardex



Muchas Gracias por su ayuda


Preguntas similares