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

Preguntas similare

Leer las respuestas

#6 K
03/02/2005 - 21:11 | Informe spam
Si pero la consulta se necesitan estos dos

MovimientosCompletos.FechaMovimiento >= S.FechaMovimiento AND
MovimientosCompletos.Movimiento >= S.Movimiento

porque si pongo solo por fecha

MovimientosCompletos.FechaMovimiento >= S.FechaMovimiento

me devuelve

9702678 TRMEBP50W 03 1998-03-31 00:00:00 3000 3000
9702720 TRMEBP50W 03 1998-04-03 00:00:00 -1 2996
9702724 TRMEBP50W 03 1998-04-03 00:00:00 -1 2996
9702734 TRMEBP50W 03 1998-04-03 00:00:00 -2 2996

La primera secuencia que envie esta muy bien la vista porque es el orden
correcto solo por esos movimientos que tienen un numero menor al anterior
...

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

En la fila que señalo me saca mal el saldo porque no me toma en cuenta
la fila anterior a esa por tener el numero de movimiento mayor el suyo y es
algo que no entiendo bien porque a pesar de no cumplir con eso del numero de
movimiento si cumple con lo de la fecha



"Maxi" escribió en el mensaje
news:
Hola, entonces no te entiendo :( si lo importante es la fecha esta bien


que
esten ordenados por fecha verdad sin importar el numero de movimiento?


Salu2
Maxi


"" escribió en el mensaje
news:
> Te entiendo, lo importante es la Fecha de ahi el numero de Movimiento
> ese es el orden en que lo tengo en este momento
>
>
> "Maxi" escribió en el mensaje
> news:
>> Hola, el tema es este
>>
>>
>> 9702753 TRMEBP50W 03 1998-04-07 00:00:00 -2 2962
>> 9702769 TRMEBP50W 03 1998-04-07 00:00:00 1 2961
>> 9702763 TRMEBP50W 03 1998-04-08 00:00:00 -2 2960
>>
>> si ordenas por movimiento como te dije deberia ser
>>
>> 9702753 TRMEBP50W 03 1998-04-07 00:00:00 -2 2962
>> 9702763 TRMEBP50W 03 1998-04-08 00:00:00 -2 2960
>> 9702769 TRMEBP50W 03 1998-04-07 00:00:00 1 2961
>>
>>
>> Aca debes definir si lo importante es el numero de transaccion o la


fecha
>>
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "" escribió en el mensaje
>> news:
>> > Hola maxi mira esto es que le me regresa ahora
>> >
>> > Nº Mov Codigo Articulo 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 2961
>> > 9702763 TRMEBP50W 03 1998-04-08 00:00:00 -2 2960
>> >
>> > Como ves las ultimas 3 filas 2962 + 1 me sale 2961 porque me toma
>> > la ultima fila tambien en la suma del Saldo el problema aqui es que
>> > a veces generan movimientos con fechas anteriores
>> >
>> > Por eso pense en generar un correlativo y trabajar con ese campo.
>> >
>> > "Maxi" escribió en el mensaje
>> > news:#
>> >> 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
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
#7 Maxi
03/02/2005 - 21:58 | Informe spam
Hola, mmm que pasa si pones solo por numero de movimiento y que ordene asi?

MovimientosCompletos.Movimiento >= S.Movimiento


Tenes el query completo? asi cuando llego a casa lo pruebo con algunos
ejemplos a ver como te puedo ayudar


Salu2
Maxi


"" escribió en el mensaje
news:%
Si pero la consulta se necesitan estos dos

MovimientosCompletos.FechaMovimiento >= S.FechaMovimiento AND
MovimientosCompletos.Movimiento >= S.Movimiento

porque si pongo solo por fecha

MovimientosCompletos.FechaMovimiento >= S.FechaMovimiento

me devuelve

9702678 TRMEBP50W 03 1998-03-31 00:00:00 3000 3000
9702720 TRMEBP50W 03 1998-04-03 00:00:00 -1 2996
9702724 TRMEBP50W 03 1998-04-03 00:00:00 -1 2996
9702734 TRMEBP50W 03 1998-04-03 00:00:00 -2 2996

La primera secuencia que envie esta muy bien la vista porque es el orden
correcto solo por esos movimientos que tienen un numero menor al anterior
...

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

En la fila que señalo me saca mal el saldo porque no me toma en cuenta
la fila anterior a esa por tener el numero de movimiento mayor el suyo y
es
algo que no entiendo bien porque a pesar de no cumplir con eso del numero
de
movimiento si cumple con lo de la fecha



"Maxi" escribió en el mensaje
news:
Hola, entonces no te entiendo :( si lo importante es la fecha esta bien


que
esten ordenados por fecha verdad sin importar el numero de movimiento?


Salu2
Maxi


"" escribió en el mensaje
news:
> Te entiendo, lo importante es la Fecha de ahi el numero de Movimiento
> ese es el orden en que lo tengo en este momento
>
>
> "Maxi" escribió en el mensaje
> news:
>> Hola, el tema es este
>>
>>
>> 9702753 TRMEBP50W 03 1998-04-07 00:00:00 -2 2962
>> 9702769 TRMEBP50W 03 1998-04-07 00:00:00 1 2961
>> 9702763 TRMEBP50W 03 1998-04-08 00:00:00 -2 2960
>>
>> si ordenas por movimiento como te dije deberia ser
>>
>> 9702753 TRMEBP50W 03 1998-04-07 00:00:00 -2 2962
>> 9702763 TRMEBP50W 03 1998-04-08 00:00:00 -2 2960
>> 9702769 TRMEBP50W 03 1998-04-07 00:00:00 1 2961
>>
>>
>> Aca debes definir si lo importante es el numero de transaccion o la


fecha
>>
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "" escribió en el mensaje
>> news:
>> > Hola maxi mira esto es que le me regresa ahora
>> >
>> > Nº Mov Codigo Articulo 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 2961
>> > 9702763 TRMEBP50W 03 1998-04-08 00:00:00 -2 2960
>> >
>> > Como ves las ultimas 3 filas 2962 + 1 me sale 2961 porque me toma
>> > la ultima fila tambien en la suma del Saldo el problema aqui es que
>> > a veces generan movimientos con fechas anteriores
>> >
>> > Por eso pense en generar un correlativo y trabajar con ese
>> > campo.
>> >
>> > "Maxi" escribió en el mensaje
>> > news:#
>> >> 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
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>






Respuesta Responder a este mensaje
#8 K
03/02/2005 - 22:10 | Informe spam
Si te lo copio...

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

esa es la consulta que uso y respondiendo a lo ultimo te mostre que tipo de
saldo me salio
al usar solo MovimientosCompletos.Movimiento >= S.Movimiento

9702753 TRMEBP50W 03 1998-04-07 00:00:00 -2 2962
9702769 TRMEBP50W 03 1998-04-07 00:00:00 1 2961
9702763 TRMEBP50W 03 1998-04-08 00:00:00 -2 2960

como te digo el que me causa problemas es el que aya numeros de movimento
con fechas anteriores.


"Maxi" escribió en el mensaje
news:
Hola, mmm que pasa si pones solo por numero de movimiento y que ordene


asi?

MovimientosCompletos.Movimiento >= S.Movimiento


Tenes el query completo? asi cuando llego a casa lo pruebo con algunos
ejemplos a ver como te puedo ayudar


Salu2
Maxi


"" escribió en el mensaje
news:%
> Si pero la consulta se necesitan estos dos
>
> MovimientosCompletos.FechaMovimiento >= S.FechaMovimiento AND
> MovimientosCompletos.Movimiento >= S.Movimiento
>
> porque si pongo solo por fecha
>
> MovimientosCompletos.FechaMovimiento >= S.FechaMovimiento
>
> me devuelve
>
> 9702678 TRMEBP50W 03 1998-03-31 00:00:00 3000 3000
> 9702720 TRMEBP50W 03 1998-04-03 00:00:00 -1 2996
> 9702724 TRMEBP50W 03 1998-04-03 00:00:00 -1 2996
> 9702734 TRMEBP50W 03 1998-04-03 00:00:00 -2 2996
>
> La primera secuencia que envie esta muy bien la vista porque es el


orden
> correcto solo por esos movimientos que tienen un numero menor al


anterior
> ...
>
> 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
>
> En la fila que señalo me saca mal el saldo porque no me toma en cuenta
> la fila anterior a esa por tener el numero de movimiento mayor el suyo y
> es
> algo que no entiendo bien porque a pesar de no cumplir con eso del


numero
> de
> movimiento si cumple con lo de la fecha
>
>
>
> "Maxi" escribió en el mensaje
> news:
>> Hola, entonces no te entiendo :( si lo importante es la fecha esta bien
> que
>> esten ordenados por fecha verdad sin importar el numero de movimiento?
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "" escribió en el mensaje
>> news:
>> > Te entiendo, lo importante es la Fecha de ahi el numero de Movimiento
>> > ese es el orden en que lo tengo en este momento
>> >
>> >
>> > "Maxi" escribió en el mensaje
>> > news:
>> >> Hola, el tema es este
>> >>
>> >>
>> >> 9702753 TRMEBP50W 03 1998-04-07 00:00:00 -2 2962
>> >> 9702769 TRMEBP50W 03 1998-04-07 00:00:00 1 2961
>> >> 9702763 TRMEBP50W 03 1998-04-08 00:00:00 -2 2960
>> >>
>> >> si ordenas por movimiento como te dije deberia ser
>> >>
>> >> 9702753 TRMEBP50W 03 1998-04-07 00:00:00 -2 2962
>> >> 9702763 TRMEBP50W 03 1998-04-08 00:00:00 -2 2960
>> >> 9702769 TRMEBP50W 03 1998-04-07 00:00:00 1 2961
>> >>
>> >>
>> >> Aca debes definir si lo importante es el numero de transaccion o la
> fecha
>> >>
>> >>
>> >>
>> >> Salu2
>> >> Maxi
>> >>
>> >>
>> >> "" escribió en el mensaje
>> >> news:
>> >> > Hola maxi mira esto es que le me regresa ahora
>> >> >
>> >> > Nº Mov Codigo Articulo 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 2961
>> >> > 9702763 TRMEBP50W 03 1998-04-08 00:00:00 -2 2960
>> >> >
>> >> > Como ves las ultimas 3 filas 2962 + 1 me sale 2961 porque me toma
>> >> > la ultima fila tambien en la suma del Saldo el problema aqui es


que
>> >> > a veces generan movimientos con fechas anteriores
>> >> >
>> >> > Por eso pense en generar un correlativo y trabajar con ese
>> >> > campo.
>> >> >
>> >> > "Maxi" escribió en el mensaje
>> >> > news:#
>> >> >> 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
>> >> >> >
>> >> >> >
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
#9 MAXI
03/02/2005 - 23:51 | Informe spam
Hola, mirate este ejemplo:

=
create table #movimientosCompletos (movimiento int identity,valor float,
fecha datetime,articulo int)


insert into #movimientosCompletos (valor,fecha,articulo) values
(100,getdate(),1)
insert into #movimientosCompletos (valor,fecha,articulo) values
(-50,getdate()-1,1)
insert into #movimientosCompletos (valor,fecha,articulo) values
(200,getdate()+1,1)
insert into #movimientosCompletos (valor,fecha,articulo) values
(200,getdate(),1)



SELECT m.Movimiento,M.Articulo,
m.Fecha,M.valor,SUM(S.valor) AS Saldo,count(*) AS CUENTA
FROM #MovimientosCompletos M INNER JOIN
(SELECT Movimiento,Fecha,
Articulo,valor FROM #MovimientosCompletos) S ON
M.Articulo = S.Articulo AND
M.fecha >= S.Fecha -- and
GROUP BY M.Movimiento,
M.Fecha,M.articulo, M.valor
order by m.fecha



funciona bien, el tema me parece que lo tenes como estas guardando las
fechas, estas las estas guardando con las horas? porque si solo guardas la
fecha se te complicara mucho :(

Proba y contame
Respuesta Responder a este mensaje
#10 MAXI
04/02/2005 - 00:08 | Informe spam
Hola, pensando nuevamente ahora me doy cuenta lo que me dices.

mmm, se me ocurre una solucion fea pero deberia funcionar.

1) te creas una tabla temporal con la estructura de movimientos con un campo
identity
2) insertamos en esa tabla temporal el reultado del select de movimientos
ordenado por fecha primero y luego por movimiento
3) hacemos la query sobre la tabla temporal usando el identity (numerador)

Si no te das cuenta como armarlo ye genero la instruccion, otra opcion no se
me ocurre :( quizas algun genio de este news tenga otra alternativa



Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)

MSN:
"MAXI" escribió en el mensaje
news:
Hola, mirate este ejemplo:

=>
create table #movimientosCompletos (movimiento int identity,valor float,
fecha datetime,articulo int)


insert into #movimientosCompletos (valor,fecha,articulo) values
(100,getdate(),1)
insert into #movimientosCompletos (valor,fecha,articulo) values
(-50,getdate()-1,1)
insert into #movimientosCompletos (valor,fecha,articulo) values
(200,getdate()+1,1)
insert into #movimientosCompletos (valor,fecha,articulo) values
(200,getdate(),1)



SELECT m.Movimiento,M.Articulo,
m.Fecha,M.valor,SUM(S.valor) AS Saldo,count(*) AS CUENTA
FROM #MovimientosCompletos M INNER JOIN
(SELECT Movimiento,Fecha,
Articulo,valor FROM #MovimientosCompletos) S ON
M.Articulo = S.Articulo AND
M.fecha >= S.Fecha -- and
GROUP BY M.Movimiento,
M.Fecha,M.articulo, M.valor
order by m.fecha


>
funciona bien, el tema me parece que lo tenes como estas guardando las
fechas, estas las estas guardando con las horas? porque si solo guardas la
fecha se te complicara mucho :(

Proba y contame



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida