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

Ayuda: SELECT DISTINCT que no funciona como debería

Estas en el tema de Ayuda: SELECT DISTINCT que no funciona como debería en el foro de SQL Server en Foros del Web. Hola a todos, soy nuevo en el foro, les cuento mi problema: Tengo una tabla con los siguientes campos. MSPPID, CompanyName y subsidiaryName. El campo ...
  #1 (permalink)  
Antiguo 31/03/2009, 14:53
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 15 años
Puntos: 0
Ayuda: SELECT DISTINCT que no funciona como debería

Hola a todos, soy nuevo en el foro, les cuento mi problema:
Tengo una tabla con los siguientes campos. MSPPID, CompanyName y subsidiaryName. El campo que se llama MSPPID, se supone que es la llave primaria, solo que no está declarado en la estructura de la tabla como tal, entonces hay unos registros que tienen el mismo MSPPID, es decir se repite, pero el companyName, difiere talvez en algunas mayusculas, o espacios, cosas mínimas, en fin, es la misma compañía solo que está duplicada, ahora bien, lo que yo necesito es un select que me devuelva solamente los MSPPID pero sin repetirme ninguno, he intentado lo siguiente:
Código:
SELECT DISTINCT(MSPPID), CompanyName, SubsidiaryName
FROM dbo.PT_Accounts
where CompanyName LIKE '%' and SubsidiaryName LIKE '%' AND MSPPID is not null
Order by CompanyName ASC
Pero al parecer ignora el DISTINCT, he intentado con group by, y me pasa lo mismo. Lo que me llama la atención es que si yo elemino del SELECT los campos CompanyName y SubsidiaryName, voilà! Sí sirve, me da el resultado que quiero, pero a la hora de agregar los otros campos que también necesito recuperar, me repite los MSPPIDs.
Ayudaaaa por favor!! ya no sé qué hacer
  #2 (permalink)  
Antiguo 31/03/2009, 16:13
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Ayuda: SELECT DISTINCT que no funciona como debería

Que tal.

El SELECT que comentas funciona como debería, al menos en SQL Server, el distinct no es por campos dentro del parentesis, sino para todos los campos que pongas en la clausula select.

Y para que obtengas los resultados esperados tienes que hacer lo siguiente:

Código:
SELECT MSPPID, CompanyName, SubsidiaryName
FROM dbo.PT_Accounts
where CompanyName LIKE '%' and SubsidiaryName LIKE '%' AND MSPPID is not null
AND   MSPPID in ( SELECT DISTINCT MSPPID FROM dbo.PT_Accounts)
Order by CompanyName ASC
Saludos.
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 11:01.