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

[SOLUCIONADO] Consulta select

Estas en el tema de Consulta select en el foro de SQL Server en Foros del Web. Hola,tengo una consulta que me trae una serie de registros los cuales estan repetido por idDonante, y lo que quiero hacer es que no repita ...
  #1 (permalink)  
Antiguo 12/07/2013, 07:55
 
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 1
Consulta select

Hola,tengo una consulta que me trae una serie de registros los cuales estan repetido por idDonante, y lo que quiero hacer es que no repita los donantes.

la consulta es la siguiente:

SELECT distinct dbo.BDS_Donante.idDonante, isnull(dbo.BDS_Admision.idAdmision,0) as admision,
dbo.BDS_Donante.nombre, dbo.BDS_Donante.apellido,
dbo.BDS_Donante.numeroDocumento,
dbo.Sys_sexo.nombre as sexo
FROM dbo.BDS_Donante
left JOIN dbo.BDS_Admision on dbo.BDS_Admision.idDonante = dbo.BDS_Donante.idDonante
left JOIN Sys_Sexo on Sys_Sexo.idSexo = BDS_Donante.idSexo
WHERE 1=1 AND dbo.BDS_Donante.apellido LIKE '%puente%'
order by dbo.BDS_Donante.idDonante asc

Y me devuelve:

5 1 Roberto Carlos Puente 23001138 Masculino
5 808 Roberto Carlos Puente 23001138 Masculino
5 933 Roberto Carlos Puente 23001138 Masculino
5 953 Roberto Carlos Puente 23001138 Masculino
5 988 Roberto Carlos Puente 23001138 Masculino
6 2 Javier Alejandro Puente 36371365 Masculino
6 901 Javier Alejandro Puente 36371365 Masculino
6 909 Javier Alejandro Puente 36371365 Masculino
6 916 Javier Alejandro Puente 36371365 Masculino
6 919 Javier Alejandro Puente 36371365 Masculino
6 935 Javier Alejandro Puente 36371365 Masculino

Yo quiero que me traiga solo Roberto Puente y Javier Puente. Muchas gracias y saludos.-
  #2 (permalink)  
Antiguo 12/07/2013, 08:26
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta select

sencillo retira los campos id's y te va a regresar solo los donantes, aqui el punto es que segun las reglas de sql server no te esta repitiendo registros

5 1 Roberto Carlos Puente 23001138 Masculino
5 808 Roberto Carlos Puente 23001138 Masculino
5 933 Roberto Carlos Puente 23001138 Masculino
5 953 Roberto Carlos Puente 23001138 Masculino
5 988 Roberto Carlos Puente 23001138 Masculino

porque si te fijas todos tienen un valor diferente(en este caso idadmision) remueve este dato y te llevaras una agradable sorpresa :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 12/07/2013, 08:36
 
Fecha de Ingreso: febrero-2010
Mensajes: 28
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Consulta select

El tema es que necesito los id, no los puedo sacarm y probando encontre que se puede hacer asi:
Código SQL:
Ver original
  1. SELECT DISTINCT dbo.BDS_Donante.idDonante, MAX(isnull(dbo.BDS_Admision.idAdmision,0)) AS admision,
  2.                                dbo.BDS_Donante.nombre, dbo.BDS_Donante.apellido,
  3.                                dbo.BDS_Donante.numeroDocumento,
  4.                                 dbo.Sys_sexo.nombre AS sexo
  5.                                 FROM dbo.BDS_Donante
  6.                                 LEFT JOIN dbo.BDS_Admision ON dbo.BDS_Admision.idDonante = dbo.BDS_Donante.idDonante
  7.                                 LEFT JOIN Sys_Sexo ON Sys_Sexo.idSexo = BDS_Donante.idSexo
  8.                                 WHERE 1=1 AND dbo.BDS_Donante.apellido LIKE '%puente%'
  9.                                 GROUP BY dbo.BDS_Donante.idDonante,dbo.BDS_Donante.nombre, dbo.BDS_Donante.apellido,
  10.                                dbo.BDS_Donante.numeroDocumento,
  11.                                 dbo.Sys_sexo.nombre

Gracias y saludos.-

Última edición por gnzsoloyo; 12/07/2013 a las 17:20
  #4 (permalink)  
Antiguo 12/07/2013, 08:39
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta select

__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: join, registro, select
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 01:43.