Instruction SELECT sans doublons sur les multiples joindre des tables dans SQL Server

J'ai 3 tables de jointure avec ensemble et je veux sélectionner des lignes distinctes sur la B. val3. j'utilise quelque chose comme ceci :

SELECT A.val1,A.val2, B.val1, B.val2, B.val3, C.val1, C.val2
FROM A INNER JOIN
B ON A.val1 = B.val1 INNER JOIN
C ON A.val1 = C.val1

cette déclaration arriver à me 24 lignes avec des doublons de B. val3
maintenant, lorsque j'utilise SELECT DISTINCT A.val1,A.val2, B.val1,..., tous les 24 dossiers sont récupérées, mais je ne veux que des lignes distinctes sur la B. val3 extrait (8 lignes)

lorsque j'utilise quelque chose comme :

SELECT DISTINCT A.val1,A.val2, B.val1,
...
C ON A.val1 = C.val1 GROUP BY B.val3

j'ai reçu un message d'erreur :

Msg 8120, Level 16, State 1, Line 13
Column 'A.val1' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

EDIT : structure et les données

Une table comme suit : val2 est clé étrangère de B et val3 est clé étrangère C

val1   val2    val3
-----  -----   -----
1       100     200
2       100     201
3       101     200
4       102     200
5       102     201

tableau B :

val1   val2    val3
-----  -----   -----
100     a2      aaa
101     b2      bbb
102     c2      ccc

tableau C :

val1   val2    
-----  -----   
200     a3      
201     b3      

et je veux obtenir quelque chose comme :

A.val1  A.val2  A.val3  B.val1  B.val2  B.val3  C.val1  C.val2
-----   -----   -----   -----   -----   -----   -----   -----
1       100      200     100      a2     aaa      200    a3
3       101      200     101      b2     bbb      200    a3      
4       102      201     102      c2     ccc      201    b3    
  • Veuillez fournir des échantillons de données et de sortie souhaité.
  • Vous devez indiquer au serveur, explicitement, la manière de sélectionner les valeurs des autres colonnes pour chaque distinctes B.Val3 valeur. Il ne sera pas le deviner, il doit être dit. Pour obtenir de bons réponses ici, vous devez nous dire ce que la règle(s) sont trop.
InformationsquelleAutor hamed aj | 2012-08-14