2010-07-01 6 views
0

J'ai besoin d'aide avec une requête pour obtenir des enregistrements distincts de la table. L'ID de type et le courrier électronique ont des valeurs différentes dans le tableau.requête SQL obtenir des enregistrements distincts

  SELECT distinct cID, firstname, lastname, 
      typeId, email from tableA 

Je connais celui-ci provoquant le retour de 2 enregistrements car ces valeurs sont différentes.

Y at-il de toute façon je peux obtenir 1 enregistrement pour chaque cID indépendamment de typeId et email?

+0

Avez-vous besoin du typeId et du courrier électronique? (cela ne suggérerait pas, si vous ne vous souciez pas de ce que vous pourriez obtenir) - auquel cas la chose la plus simple pourrait être de simplement les laisser tomber de la sélection - à quel point elle est distincte seulement sur les choses dont vous avez besoin, non? – Ragster

Répondre

0

Si vous ne vous souciez pas de ce que typeId et e-mail sont sélectionnés avec chaque cID, voici une façon de le faire.

SELECT DISTINCT a.cID 
     , a.firstname 
     , a.lastname 
     , b.typeId 
     , b.email 
FROM TableA a 
     INNER JOIN (
      SELECT cID, MIN(typeID), MIN(email) 
      FROM TableA 
      GROUP BY 
        cID 
     ) b ON b.cID = a.cID 
0

Si une valeur pour typeId et le courrier électronique sont acceptables,

SELECT cID, firstname, lastname, 
    max(typeId), max(email) 
from tableA 
group by cID, firstname, lastname, 

devrait le faire.

0

Est-ce ce que vous êtes après :?

SELECT a.cID distincts, a.firstname, a.lastname, (SELECT typeId de tableA OÙ cid = a.cID), (e-mail Sélectionnez de tableA OÙ cid = a.cID) de tableA En tant que

Questions connexes