Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Dudas con el uso de Distinct y Top

Estas en el tema de Dudas con el uso de Distinct y Top en el foro de Bases de Datos General en Foros del Web. Buenas tardes: Tengo una tabla que almacena los datos de los últimos ingresos en un aplicación. Algo parecido a la opción de "últimos documentos abiertos" ...
  #1 (permalink)  
Antiguo 10/03/2012, 10:53
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 8 meses
Puntos: 10
Dudas con el uso de Distinct y Top

Buenas tardes:
Tengo una tabla que almacena los datos de los últimos ingresos en un aplicación. Algo parecido a la opción de "últimos documentos abiertos" de la mayoría de los programas.

Necesito hacer lo siguiente:

1. Mostrar los 5 últimos registros
2. Eliminar del listado final los duplicados

Por ejemplo, supongamos que estos son los 10 últimos registros ingresados

modulo A
modulo B
modulo D
modulo B
modulo B
modulo C
modulo E
modulo F
modulo C
modulo G

Al generar el listado debe de aparecer así

modulo A
modulo B
modulo D
modulo C
modulo E

Es decir, primero debo eliminar los duplicados y luego mostrar los 5 últimos registros.

Se que para eliminar duplicados tengo la instrucción DISTINCT y para mostrar los últimos X registros tengo la instrucción TOP pero no logro generar la consulta correcta para hacer eso.

También he notado que si pongo por ejemplo Select Distinct Modulo From Historial y luego quiero cargar la información de algún campo, no me la muestra ya que sólo considera el campo "Modulo".

Imagino que puedo hacer eso en una sola consulta y por eso les consulto.

Espero haberme explicado bien.

Un saludo desde el Perú
  #2 (permalink)  
Antiguo 11/03/2012, 14:18
Avatar de freesoftwarrior  
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 8 meses
Puntos: 10
Respuesta: Dudas con el uso de Distinct y Top

SOLUCIONADO..... la consulta que buscaba es la siguiente

SELECT * FROM NombreTabla INNER JOIN (SELECT TOP 5 Last(NombreTabla.id) AS UltimoDeid FROM NombreTabla GROUP BY Nombre ORDER BY Last(id) DESC) AS Consulta ON NombreTabla.id = Consulta.UltimoDeid

Había olvidado por completo que la tabla tiene un campo ID que es auto numérico y al final hice uso de dicho campo en vez de ordenar por fecha y hora.

Etiquetas: distinct, dudas, registro, tabla, top, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:04.