Novato proviniente de M Access 2003 ?¿?

19/04/2007 - 18:20 por dgironal | Informe spam
Muy buenas, reconozco que soy NOVATO total, ¿es posible realizar la
siguiente consulta en Microsoft SQL Server 2000?

SELECT
id,
LAST(campo)

FROM
[Vista Ordenada por id]

GROUP BY ID

Gracias de antemano

Nota: Microsoft Access 2003 incorpora la función LAST, pero SQL Server 2000
No ¿Cómo simularla?

Preguntas similare

Leer las respuestas

#1 Javier Loria
19/04/2007 - 17:26 | Informe spam
Hola:
LAST en SQL no tiene mucho sentido ya que es un motor relacional, y en
una relacion no hay ordenamiento.
Pero no te preocupes, puedes usar el MAX para obtener el maximo, que
casi siempre es lo quer quires.
==SELECT id, MAX(campo)
FROM [Tabla o Vista]
GROUP BY ID
== Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"dgironal" wrote in message
news:
Muy buenas, reconozco que soy NOVATO total, ¿es posible realizar la
siguiente consulta en Microsoft SQL Server 2000?

SELECT
id,
LAST(campo)

FROM
[Vista Ordenada por id]

GROUP BY ID

Gracias de antemano

Nota: Microsoft Access 2003 incorpora la función LAST, pero SQL Server
2000 No ¿Cómo simularla?


Respuesta Responder a este mensaje
#2 Javier Loria
19/04/2007 - 18:31 | Informe spam
Hola:
Una nota, MAX si sirve para numericos, fechas y strings.
Saludos,

Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"dgironal" wrote in message
news:
Gracias por contestar, MAX no me sirve porque los campos son numerícos,
fechas, ..., de todos modos gracias.


Respuesta Responder a este mensaje
#3 Federico A Colli
19/04/2007 - 18:35 | Informe spam
Hola.
En SQL Server puedes hacer algo como Select Top 1 ..., que te trae 1
registro (el primero) de la consulta. Si rebuscas un poco, puedes hacer la
consulta con un orden inverso tomando el primer elemento, lo que en realidad
sería el último elemento en tu consulta original.
Podemos transformar tu consulta agregando el TOP 1, y un orden descendente
(DESC) del campo en cuestión:

SELECT TOP 1 id
FROM [Vista Ordenada por id]
GROUP BY ID
ORDER BY campo DESC

Saludos
Carpe diem, tempus fugit
AUS Federico A. Colli


"dgironal" escribió en el mensaje
news:
Muy buenas, reconozco que soy NOVATO total, ¿es posible realizar la
siguiente consulta en Microsoft SQL Server 2000?

SELECT
id,
LAST(campo)

FROM
[Vista Ordenada por id]

GROUP BY ID

Gracias de antemano

Nota: Microsoft Access 2003 incorpora la función LAST, pero SQL Server
2000 No ¿Cómo simularla?


Respuesta Responder a este mensaje
#4 Javier Loria
19/04/2007 - 19:04 | Informe spam
Hola:
Prueba con una setencia como esto:
==SELECT *
FROM MiTabla
WHERE Id=(SELECT MAX(Id) FROM MiTabla)
== Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"dgironal" wrote in message
news:
Voy a ser más explícito:

Tabla
id grupo fecha texto

Ejemplo

1 grupo1 01/01/2007 David
2 grupo2 01/01/2007 Pepe
3 grupo3 02/01/2007 Juan
4 grupo1 03/01/2007 Texto que remplaza a David
5 grupo1 04/01/2007 Otro texto nuevo
6 grupo2 05/01/2007 Texto que reemplaza a Pepe

La consulta debería devolver:

5 grupo1 04/01/2007 Otro texto nuevo
6 grupo2 05/01/2007 Texto que reemplaza a Pepe
3 grupo3 02/01/2007 Juan

Creo que se entiende ¿?¿, ¿Cómo sería la consulta?


Respuesta Responder a este mensaje
#5 dgironal
19/04/2007 - 19:14 | Informe spam
Gracias por contestar, MAX no me sirve porque los campos son numerícos,
fechas, ..., de todos modos gracias.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida