2012-09-05 1 views
3

Je fais une requête basée sur un événement de natation. Il existe des codes d'événements uniques, ainsi que des codes de nageurs uniques et leur placement. Je rencontre actuellement un problème, car je veux afficher uniquement les nageurs qui ont participé au même événement (par exemple, je veux afficher uniquement les nageurs qui ont fait le relais au 100 m).Rechercher et afficher uniquement les valeurs identiques en SQL

Y at-il une syntaxe qui fait cela?

que je faisais quelque chose de similaire à ce

SELECT Swimmers, Eventid, Place 
FROM Results 
WHERE Place=Place 
AND Eventid=Eventid 

Mais cela inclut même les nageurs qui ne cravate.

Toute suggestion serait grande

Répondre

5

Essayez ce,

SELECT Swimmers, 
     Eventid, 
     Place 
FROM Results a INNER JOIN 
     (
      SELECT EventID, Place ,COUNT(Place) totalPlace 
      FROM Results 
      GROUP BY EventID, Place 
      HAVING COUNT(Place) > 1 
     ) b ON a.eventID = b.EventID AND 
       a.Place = b.Place 
-- WHERE -- add extra conditions here 
+0

de Nice! Juste me battre pour ça –

0

Vous pouvez faire quelque chose comme ça

SELECT Swimmers, EventId, Place 
    FROM Results r JOIN 
     (SELECT EventId, Place 
     FROM Results 
     GROUP BY EventId, Place 
     HAVING COUNT(*) > 1) t ON (r.EventId = t.EventId AND r.Place = t.Place) 
Questions connexes