|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Architecte technique Inscription : janvier 2012 Messages : 2 ![]() |
Bonjour
voici mes tables et données d'exemple : Member : No_Membr, Nom 10,Jack 20,Jo 30,Janna 40,Black Game : No_Membr,No_Advers,PointageMembr,PointageAdvers 10,20,6,5 10,30,5,4 30,10,2,3 Nom1,Nom2,PointageMembr,PointageAdvers Jack,Jo,6,5 Jack,Janne,5,4 Janna,Jack,2,3 voici la requete que j'ai tenter d'utiliser mais sans success j'obtiens des doublons Jack,Jo et Jo,Jack par exemple Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 883 ![]() |
Tu obtiens un doublon parce que tu l'as dans ta base, sinon la requete semble bonne :
10,30,5,4 30,10,2,3
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Architecte technique Inscription : janvier 2012 Messages : 2 ![]() |
tu as raison j'avais des doublons dans la BD . Par contre j'aimerais obtenir une seule fois chaque partie . Donc j'aimerais que Dm_Partie soit unique dans le resultat de la requete . J'ai essayer de faire un GROUP BY Dm_Partie , mais j'obtiens toujours que des colonne ne font pas partis d'aggregate .
Comment obtenir une partie unique... Merci Code :
Calibre Prenom1 Nom1 PointageMembr PointageAdvers Prenom2 Nom2 Dm_Partie B+ Bernard Frig 3 6 Stéphane Turc 2011-08-25 21:32:54.000 B+ Stéphane Turc 6 3 Bernard Frig 2011-08-25 21:32:54.000 C Stephane Gon 9 5 Marielle Ch 2011-08-25 20:08:53.000 C Stephane Gon 9 5 Marielle Ch 2011-08-25 20:08:53.000 C Marielle Ch 5 9 Stephane Gon 2011-08-25 20:08:53.000 C Marielle Ch 5 9 Stephane Gon 2011-08-25 20:08:53.000 Calibre Prenom1 Nom1 PointageMembr PointageAdvers Prenom2 Nom2 Dm_Partie B+ Bernard Frig 3 6 Stéphane Turc 2011-08-25 21:32:54.000 C Stephane Gon 9 5 Marielle Ch 2011-08-25 20:08:53.000 |
||
|
|
00
|
|
|
#4 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 883 ![]() |
Ben là, la question a se poser c'est pourquoi tu as des doublons dans ta base.
Soit tu as un problème de conception, de ta base, du logiciel qui enregistre les données, des deux, etc, soit ce ne sont pas des doublons au sens des données elles-mêmes. Si il est légitime que tu es des doublons, il faut savoir ensuite quel élément du doublon tu vas utiliser et lequel tu vas ignorer, ou alors si tu veux les grouper quel information tu va agréger pour les regrouper. Tu cumule les scores ou tu en fait la moyenne? Tu prend le plus récent, le moins récent ? Etc...
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
|
|
00
|
|
|
#5 | ||
|
Membre à l'essai
![]() Fabrice FloresAdministrateur de base de données Inscription : décembre 2011 Messages : 17 ![]() |
Je suis de l'avis de Sevyc64, il semble y avoir des questions à se poser sur la façon de renseigner la table des résultats.
Cependant, dans l'hypothèse où Frank12 n'aurait pas la possibilité d'intervenir en amont, la seule solution semble de faire la distinction sur la date, c'est le seul champ qui semble être commun aux doublons. En revanche il faut être sûr qu'on n'ait pas plusieurs parties qui commencent en même temps. Personnellement, je modifierais le type du champ Dm_Partie pour avoir une précision à la milliseconde et j'utiliserais la requête suivante pour éliminer les doublons: Code :
Hope it will help
|
||
|
|
00
|
|
|
#6 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 883 ![]() |
Dans les exemples donnés, tout est identique, même la date.
Soit toute la structure de la table n'est pas données et il y a réellement des champs qui permettent de faire la différence, et ce n'est pas des doublons dans la table, Soit c'est de vrai des doublons, cela signifie que la table en question n'a pas de clé primaire chose qui ne devrait jamais être fait en base relationnelle. Le problème qui se pose aussi, c'est, si ces données sont liées à d'autres données dans d'autres table. Dans le cas de doublon, quelle ligne retenir pour faire le lien ?
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
|
|
00
|
|
|
#7 |
|
Membre à l'essai
![]() Fabrice FloresAdministrateur de base de données Inscription : décembre 2011 Messages : 17 ![]() |
Tout à fait d'accord, j'ai vraiment l'impression qu'il s'agit de vrais doublons et que les données sont insérées plusieurs fois.
Je me suis en effet posé des questions sur la clé primaire de cette table. Frank12, 2 petites questions: 1/ ta table des parties est-elle dotée d'une clé primaire ou d'une quelconque colonne unique pour chaque ligne? 2/ Si la réponse est non, les parties sont-elles identifiées par un numéro ou une quelconque colonne unique pour chaque partie? |
|
|
00
|
|
|
#8 | ||
![]() ![]() |
Plus simplement, il suffit de donner un ordre de priorité dans les numéros de membres.
En repartant de la requête de Frank12 : Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Fabrice FloresAdministrateur de base de données Inscription : décembre 2011 Messages : 17 ![]() |
Oui mais encore faut-il que No_Membr existe!! car je ne suis pas sur que le premier exemple de Frank12 soit en rapport avec le second.
De plus je crois qu'il faudrait ajouter un distinct dans ta requête pour éliminer les vrais doublons. Frank12 ce serait bien si tu avais la liste complète de tes colonnes ou un schéma du modèle |
|
|
00
|
|
|
#10 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2012 Messages : 7 ![]() |
Je pense que la solution de Waldar est la bonne si on veut garder la base avec des doublons. Mais attention si pour une partie il n'y a pas de doublon, et que le joueur B est supérieur à A alors ça le supprime, je corrigerai ainsi en rajoutant des doublons (A tester, je ne suis pas sure de mon coup, ni que le Distinct soit utile)
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com