SQL - Cursores

 
Vista:

Cursores

Publicado por Oscar (6 intervenciones) el 12/07/2005 00:39:30
Que tal tengo que hacer una consulta usando cursores, esto es sobre la clasica base de northwind, tengo que mostrar, de determinado cliente en la tabla de orders, los siguientes cinco pedidos que tenga despues del primero que haya hecho, supongo que se debe usar un cursor keyset, pero lo que no se es como solamente tomar los 5 siguientes registros despues del primer pedido, osea, los pedidos de este cliente por ejemplo son:

10365 ANTON 3 1996-11-27 00:00:00.000
10507 ANTON 7 1997-04-15 00:00:00.000
10535 ANTON 4 1997-05-13 00:00:00.000
10573 ANTON 7 1997-06-19 00:00:00.000
10677 ANTON 1 1997-09-22 00:00:00.000
10682 ANTON 3 1997-09-25 00:00:00.000
10856 ANTON 3 1998-01-28 00:00:00.000

la consulta con cursores solo deberia mostrar

10507 ANTON 7 1997-04-15 00:00:00.000
10535 ANTON 4 1997-05-13 00:00:00.000
10573 ANTON 7 1997-06-19 00:00:00.000
10677 ANTON 1 1997-09-22 00:00:00.000
10682 ANTON 3 1997-09-25 00:00:00.000

Me podrian ayudar?

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cursores

Publicado por oscar (6 intervenciones) el 12/07/2005 01:01:51
OrderID CustomerID EmployeeID OrderDate

10365 ANTON 3 1996-11-27 00:00:00.000
10507 ANTON 7 1997-04-15 00:00:00.000
10535 ANTON 4 1997-05-13 00:00:00.000
10573 ANTON 7 1997-06-19 00:00:00.000
10677 ANTON 1 1997-09-22 00:00:00.000
10682 ANTON 3 1997-09-25 00:00:00.000
10856 ANTON 3 1998-01-28 00:00:00.000

la consulta debe mostrar:

OrderID CustomerID EmployeeID OrderDate

10507 ANTON 7 1997-04-15 00:00:00.000
10535 ANTON 4 1997-05-13 00:00:00.000
10573 ANTON 7 1997-06-19 00:00:00.000
10677 ANTON 1 1997-09-22 00:00:00.000
10682 ANTON 3 1997-09-25 00:00:00.000

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cursores

Publicado por oscar (6 intervenciones) el 12/07/2005 01:28:57
Habia entendido mal el enunciado, lo que hay que hacer es buscar el primer pedido que se haya hecho del cliente ANTON, una vez encontrado, mostrar los sigueintes 5 pedidos que se haya despues de este, sean de quien sean.. por ejemplo

10362 BONAP
10363 DRACD
10364 EASTC
10365 ANTON <---- Este es el primer pedido
10366 GALED
10367 VAFFE
10368 ERNSH
10369 SPLIR
10370 CHOPS
10371 LAMAI

la consulta debe de mostrar:

10366 GALED
10367 VAFFE
10368 ERNSH
10369 SPLIR
10370 CHOPS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cursores

Publicado por Isaías Islas (5072 intervenciones) el 12/07/2005 01:49:37
¿Funciona?

SELECT TOP 5 OrderID, CustomerID, EmployeeID, OrderDate FROM ORDERS
WHERE OrderID > (SELECT MIN(ORDERID) FROM ORDERS WHERE CustomerID = 'ANTON')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cursores

Publicado por oscar (6 intervenciones) el 12/07/2005 01:54:27
A la perfeccion, pero lo tengo que hacer usando cursores :S, aunque esto ya me sirve de ayuda, o eso creo . . .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cursores

Publicado por Carlos Gil (43 intervenciones) el 12/07/2005 01:58:22
Hola Oscar:

Debo presumir que tu consulta es solo con fines didacticos o estudiantiles, ya que no es aconsejable el uso de cursores. Entre otras razones ralentizan el sistema y consumen memoria..por eso y muchas cosas mas....NO USES CURSORES.

Bye.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cursores

Publicado por Oscar (6 intervenciones) el 12/07/2005 02:00:21
asi es, es para fin estudiantil, aparte del lo lento y consumo de memoria es mil veces mas facil y practico con select, pero asi me lo pidieron XD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar