No lo consegui

21/05/2004 - 02:01 por Cesar Ochica | Informe spam
Pido disculpas por abrir este nuevo hilo.
Pero me urge solucionar este dilema, para quienes aun no saben de que hablo,
quiero hacer un store que reciba un numero de factura y que haga una
consulta para saber que productos movio,(eso es lo primero y consudero yo
seria la subconsulta), la consulta principal deveria traerme los ultimos 5
movimientos de los productos que devuelve la sub consulta.

Ensaye con algo como lo siguiente y no me funciona

select NombreProducto,IDProducto
from Movimientos P
where IDProducto in
(
select top 5 IDProducto from Movimientos where IDProducto P.IDProducto and Documneto@49 order by Producto desc
)
order by mm04_nro


Gracias

Preguntas similare

Leer las respuestas

#1 ulises
21/05/2004 - 02:16 | Informe spam
En primer lugar tendrías que preguntarte ¿como identificas
a los primeros 5 movimientos de un producto determinado?,
¿cual es la columna que te sirve para ordenar?, si tu
columna para ordenar es "columnaordena", entonces tu
consulta para obtener los cinco primeros movimientos de un
producto Y es:

SELECT TOP 5 columnaordena
FROM Movimientos
WHERE IDProducto = Y
ORDER BY columnaordena DESC

luego de eso podrías usarla como una subconsulta para
obtener lo mismo para todos los productos :

SELECT *
FROM Movimientos P
WHERE columnaordena IN
(
SELECT TOP 5 columnaordena
FROM Movimientos
WHERE IDProducto = P.IDProducto
ORDER BY columnaordena DESC
)

si decides que sean los primeros 5 pero solo considerando
un tipo de documento en particular podrias hacer :

SELECT *
FROM Movimientos P
WHERE columnaordena IN
(
SELECT TOP 5 columnaordena
FROM Movimientos
WHERE IDProducto = P.IDProducto AND documento = xxxx
ORDER BY columnaordena
)

Saludos,
Ulises

Pido disculpas por abrir este nuevo hilo.
Pero me urge solucionar este dilema, para quienes aun no


saben de que hablo,
quiero hacer un store que reciba un numero de factura y


que haga una
consulta para saber que productos movio,(eso es lo


primero y consudero yo
seria la subconsulta), la consulta principal deveria


traerme los ultimos 5
movimientos de los productos que devuelve la sub consulta.

Ensaye con algo como lo siguiente y no me funciona

select NombreProducto,IDProducto
from Movimientos P
where IDProducto in
(
select top 5 IDProducto from Movimientos where IDProducto
P.IDProducto and order by Producto desc
)
order by mm04_nro


Gracias


.

Respuesta Responder a este mensaje
#2 Cesar Ochica
21/05/2004 - 14:35 | Informe spam
Ok, te entiendo, voy a ponerlo en practia y luego te cuento.

Gracias.. Totales
Respuesta Responder a este mensaje
#3 Cesar Ochica
21/05/2004 - 15:34 | Informe spam
Que verguenza Ulises, de verdad me da pena poner tanto pereque, pero...

No me funciona, porque efectivamente el ejemplo trae los 5 ult de cada
producto, pero el probelma es el siguiente:

Supongamos que te dicen , hay una factura N. 4049 en la que se venten 3
tipos de productos distintos (una camisa., dos pantalones y una gorra)

Y la tarea es traer los 5 ultimos movimiento de los tres productos
(partiendo de que no sabes cuales son sus ID)

Segun lo anterior creo que el primer paso es hacer una consulta que trae los
PID de los tres articulos, (segun creo esta es la subconsulta y devuelve
tres PID) ahora necesito traer los 5 ultimos movimientos de esos tres PID.

Gracias Totales
Respuesta Responder a este mensaje
#4 ulises
21/05/2004 - 16:44 | Informe spam
Envia la estructura de tus tablas, alguna data de prueba y
el resultado deseado.

Saludos,
Ulises

Que verguenza Ulises, de verdad me da pena poner tanto


pereque, pero...

No me funciona, porque efectivamente el ejemplo trae los


5 ult de cada
producto, pero el probelma es el siguiente:

Supongamos que te dicen , hay una factura N. 4049 en la


que se venten 3
tipos de productos distintos (una camisa., dos pantalones


y una gorra)

Y la tarea es traer los 5 ultimos movimiento de los tres


productos
(partiendo de que no sabes cuales son sus ID)

Segun lo anterior creo que el primer paso es hacer una


consulta que trae los
PID de los tres articulos, (segun creo esta es la


subconsulta y devuelve
tres PID) ahora necesito traer los 5 ultimos movimientos


de esos tres PID.

Gracias Totales


.

Respuesta Responder a este mensaje
#5 Cesar Ochica
21/05/2004 - 17:11 | Informe spam
OK, es una sola tabla en la que esta la informacion de los Movimientos de
los Productos.

TipoDoc Char(1) ' Indica si es Factura 'F' o Compra 'P'
NumDoc Decimal 'Numero del Documento
AnoDoc Int16 'Año de el documento
MesDoc Int16 'Mes del documento
DiaDoc Int16 'Dia del documento
Tercero string ' Es el nombre del tercero a quie se le vendio o se le compro
MovCta Decimal 'Cuenta movida por el documento
PID Decimal 'es la llave del producto movido
PDes String 'Es la descripcion del doc Movido
CantidadMov Int16 'Cantidad de articulos Movidos
ValorMov Decimal 'Valor de articulos movidos


Ejempo Tengo el programa externo que consulta las facturas y cuando se ve
una factura quiero que envie el numero de la factura y el store con el
numero de la factura averigue que articulos movio esa factura y retorne los
cinco ultimos movimientos de cada articulo.

Por ejemplo estoy viendo la factura 4049 y esta tiene tres articulos
entonces el store recibe el numero de factura y ubica los PID de los
articulos movidos (3 para el ejemplo) y retorna los cinco ultimos
movimientos de cada uno (o sea 15 registros).

Gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida