2012-04-27 4 views
0

J'ai un select Je veux un seul enregistrement retourné pour chaque cas et j'ai un problème avec lui.Éliminer plusieurs enregistrements dans la requête

Exemple:

Select 
    CaseId, Party_id, RANKING 
from... 

Le problème est au niveau de charge de l'affaire peut avoir des charges multiples similaires ...

Frais

Case ChargeCount RANKING  
    1   1  800 
    2   1  802 
    2   2  803 
    3   1  800 

Je veux seulement 3 cas retournés avec la premier tarif répondant aux critères sélectionnés. J'ai essayé d'utiliser une simple partition en passant par caseId mais cela a gâché les comptes ailleurs. Existe-t-il d'autres façons de le faire ???

Merci

+3

Afficher la requête complète au lieu de simplement nous donner 'from ...'. Plus vous donnez d'informations, plus il est facile de vous aider. –

+1

Quelle règle devrait être appliquée pour sélectionner un enregistrement où il y a des multiples avec le même 'Case'? Le plus bas/le plus haut ChargeCount/Ranking? Lancer une pièce? ;) – MatBailie

+0

Fondamentalement, * quoi * la sortie devrait-elle être pour cet exemple particulier? –

Répondre

1

Que diriez-vous:

SELECT CaseId, ChargeCount, Ranking FROM SomeTable WHERE ChargeCount = 1 

À moins que je me manque quelque chose, il est aussi simple que cela. Votre exemple de requête n'est pas très éclairant pour les structures sous-jacentes que vous avez présentées.

0

En supposant que vous voulez exactement une ligne renvoyée par CaseID:

Select 
    CaseId, Party_id, RANKING 
from... 
GROUP BY CaseID 

Notez que là où il y a plusieurs réponses possibles pour chaque ligne, cela renvoie un arbitraire à moins que vous définissez en quelque sorte celui de choisir.

Questions connexes