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

Duda sql

Estas en el tema de Duda sql en el foro de SQL Server en Foros del Web. Hola, a ver si alguien me puede ayudar con una duda que tengo. Tengo un tabla con diferentes campos y quiero hacer una select que ...
  #1 (permalink)  
Antiguo 27/04/2009, 01:33
 
Fecha de Ingreso: septiembre-2008
Mensajes: 21
Antigüedad: 16 años, 4 meses
Puntos: 0
Duda sql

Hola, a ver si alguien me puede ayudar con una duda que tengo.

Tengo un tabla con diferentes campos y quiero hacer una select que me muestro todos los campos donde uno en concreto se repite. Hasta aqui bien...

SELECT *

FROM xls_prp

WHERE prp_hab_cod IN ( SELECT prp_hab_cod FROM xls_prp GROUP BY prp_hab_cod HAVING COUNT(prp_hab_cod) > 1)

ORDER BY prp_hab_cod

Lo que necesito hacer, del resultado donde los prp_hab_cod estan repetidos, solo me muestre 1, que sea el que tenga minimo otro campo de la tabla.

Esto es el resultado de la primera select
ID PSN prp_hab_cod

508 400585 247
691 420875 247
370 400447 368
371 420618 368

y necessito que muestre

ID PSN prp_hab_cod

508 400585 247
370 400447 368

Gracias.
  #2 (permalink)  
Antiguo 27/04/2009, 06:30
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años
Puntos: 38
Respuesta: Duda sql

una de las razones por las prefiero los joins en lugar de los subqueries...

Suponiendo que ID es el campo que consideraremos para obtener el menor..

Código:
SELECT x.*
FROM ( SELECT prp_hab_cod, MIN(ID) ID 
          FROM xls_prp 
          GROUP BY prp_hab_cod 
          HAVING COUNT(prp_hab_cod) > 1) s
INNER JOIN
         xls_prp  X
ON     X.prp_hab_cod = S.prp_hab_cod AND
         X.ID = S.ID
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
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 00:39.