Problema con select

21/09/2006 - 11:33 por Asier | Informe spam
Hola grupo

Tengo una tabla con el siguiente formato

1 Dato1
2 Dato2
3 Dato3
4 Dato4
5 Dato5
6 Dato6

Que select me puede devolver los registros 3 y 4 teniendo como
referencia que el registro actual que veo es el 5??, es decir, a partir del
registro 5 quiero devolver los dos registros anteriores.

Gracias y saludos,

Asier

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
21/09/2006 - 11:42 | Informe spam
Hola,
Suponiendo que de esos dos campos el primero tiene valores únicos, puedes
usar:

select top 2 *
from c1 < 5
order by c1 desc

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Asier" escribió en el mensaje
news:
Hola grupo

Tengo una tabla con el siguiente formato

1 Dato1
2 Dato2
3 Dato3
4 Dato4
5 Dato5
6 Dato6

Que select me puede devolver los registros 3 y 4 teniendo como
referencia que el registro actual que veo es el 5??, es decir, a partir
del
registro 5 quiero devolver los dos registros anteriores.

Gracias y saludos,

Asier




Respuesta Responder a este mensaje
#2 Asier
21/09/2006 - 12:48 | Informe spam
Ya, pero me lo devuelve

4
3

y yo lo necesito como

3
4


Gracias

"Salvador Ramos" escribió en el
mensaje news:ObZ#
Hola,
Suponiendo que de esos dos campos el primero tiene valores únicos, puedes
usar:

select top 2 *
from c1 < 5
order by c1 desc

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Asier" escribió en el mensaje
news:
> Hola grupo
>
> Tengo una tabla con el siguiente formato
>
> 1 Dato1
> 2 Dato2
> 3 Dato3
> 4 Dato4
> 5 Dato5
> 6 Dato6
>
> Que select me puede devolver los registros 3 y 4 teniendo como
> referencia que el registro actual que veo es el 5??, es decir, a partir
> del
> registro 5 quiero devolver los dos registros anteriores.
>
> Gracias y saludos,
>
> Asier
>
>
>
>


Respuesta Responder a este mensaje
#3 Salvador Ramos
21/09/2006 - 13:17 | Informe spam
Entonces te remito a los artículos del guru Itzik Ben-Gan en SQL Server
Magazine.
Busca allí paging (paginación) y encontrarás dos estupendos artículos, uno
para 2000 y otro para 2005, aunque no seas suscriptor de la revista, podrás
leer una parte de ellos y bajar el código de ejemplo.
www.sqlmag.com

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Asier" escribió en el mensaje
news:
Ya, pero me lo devuelve

4
3

y yo lo necesito como

3
4


Gracias

"Salvador Ramos" escribió en el
mensaje news:ObZ#
Hola,
Suponiendo que de esos dos campos el primero tiene valores únicos, puedes
usar:

select top 2 *
from c1 < 5
order by c1 desc

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Asier" escribió en el mensaje
news:
> Hola grupo
>
> Tengo una tabla con el siguiente formato
>
> 1 Dato1
> 2 Dato2
> 3 Dato3
> 4 Dato4
> 5 Dato5
> 6 Dato6
>
> Que select me puede devolver los registros 3 y 4 teniendo como
> referencia que el registro actual que veo es el 5??, es decir, a partir
> del
> registro 5 quiero devolver los dos registros anteriores.
>
> Gracias y saludos,
>
> Asier
>
>
>
>






Respuesta Responder a este mensaje
#4 Pedro Echavarria
21/09/2006 - 13:43 | Informe spam
No lo he probado pero chequea a ver si una envoltura con otro order by
funciona:

select * from (select top 2 * from c1 < 5 order by c1 desc) order by c1

Sino usa una tabla temporal intermedia:

select top 2 * into #tmp
from c1 < 5
order by c1 desc

select * from #tmp order by c1



"Asier" wrote in message
news:
Ya, pero me lo devuelve

4
3

y yo lo necesito como

3
4


Gracias

"Salvador Ramos" escribió en el
mensaje news:ObZ#
Hola,
Suponiendo que de esos dos campos el primero tiene valores únicos, puedes
usar:

select top 2 *
from c1 < 5
order by c1 desc

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Asier" escribió en el mensaje
news:
> Hola grupo
>
> Tengo una tabla con el siguiente formato
>
> 1 Dato1
> 2 Dato2
> 3 Dato3
> 4 Dato4
> 5 Dato5
> 6 Dato6
>
> Que select me puede devolver los registros 3 y 4 teniendo como
> referencia que el registro actual que veo es el 5??, es decir, a partir
> del
> registro 5 quiero devolver los dos registros anteriores.
>
> Gracias y saludos,
>
> Asier
>
>
>
>






Respuesta Responder a este mensaje
#5 Alejandro Mesa
21/09/2006 - 14:42 | Informe spam
Trata:

decare @c1 int

set @c1 = 5

select *
from dbo.t1
where c1 >= @c1 - 2 and c1 < @c1
order by c1
go


AMB


"Asier" wrote:

Hola grupo

Tengo una tabla con el siguiente formato

1 Dato1
2 Dato2
3 Dato3
4 Dato4
5 Dato5
6 Dato6

Que select me puede devolver los registros 3 y 4 teniendo como
referencia que el registro actual que veo es el 5??, es decir, a partir del
registro 5 quiero devolver los dos registros anteriores.

Gracias y saludos,

Asier





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