|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : février 2011 Messages : 4 ![]() |
Bonjour,
Je n'arrive pas à trouver la solution pour éviter de multiples lignes "identiques". J'ai 2 tables : Code :
Code :
---------------------- A | A | 1 | 4 |15|15 A | A | 2 | 5 | 4 | 4 A | A | 3 | 6 |31|31 B | B | 1 | 8 |20|20 B | B | 1 | 9 |20|20 B | B | 2 | 8 |20|20 B | B | 2 | 9 |20|20 Ce résultat est normal car, il y une jointure ouverte sur C2 / D2 Mais je voudrais obtenir ce résultat : C1|D1|C2|D2|C3|D3 ---------------------- A | A | 1 | 4 |15|15 A | A | 2 | 5 | 4 | 4 A | A | 3 | 6 |31|31 B | B | 1 | 8 |20|20 B | B | 2 | 9 |20|20 Les 2 lignes suivantes ne doivent plus apparaître : C1|D1|C2|D2|C3|D3 ---------------------- B | B | 1 | 9 |20|20 B | B | 2 | 8 |20|20 Comment faire ? Toute idée est bienvenue. Merci d'avance. Fred |
||||
|
|
00
|
|
|
#2 | ||||
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
bonjour
Citation:
Citation:
d'ailleurs les lignes ne sont pas identiques ![]() j'ecrirais la requete deja plutot comme ceci : Code :
|
||||
|
|
00
|
|
|
#3 | ||||||
|
Invité de passage
![]() Inscription : février 2011 Messages : 4 ![]() |
Citation:
Citation:
Le 1 = 1 permet de rendre les autres contraintes inactives sans avoir besoin de retirer le Where Exemple : Code :
|
||||||
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Responsable de service informatique Inscription : janvier 2009 Messages : 1 081 ![]() |
Bonjour,
Si je comprends bien, le triplet C1 D1 C2 doit être unique dans le résultat, et "peu importe" ce qui est renvoyé pour les 3 autres colonnes. Allez, je tente ma chance: Code SQL :
Tatayo. |
||
|
|
00
|
|
|
#5 | |||||||||
|
Invité de passage
![]() Inscription : février 2011 Messages : 4 ![]() |
Citation:
Il est vrai que je n'avait pas précisé que chaque ligne de chaque table ne pouvait être utilisée qu'une seule fois. Cela donne ce résultat : Code :
Il y a bien ceci, mais il faut que l'écart soit toujours identique entre C2 et D2... Ce qui n'est pas certain. Code :
Code :
|
|||||||||
|
|
00
|
|
|
#6 |
![]() ![]() |
Si au lieu des abstraits C1, D1, Z8250... vous nous donniez des noms de tables et colonnes un peu plus concrètes ainsi qu'une explication claire de votre besoin, la description réelle de vos tables, ce serait plus facile de comprendre ce que vous cherchez à obtenir et on pourrait vous aider plus efficacement.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#7 | ||||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Si c2 et d2 sont uniques par couple (c1,c3) et (d1,d3) alors on peut les utiliser pour générer une sorte d'identifiant de ligne pour renforcer la jointure :
Code :
Code :
|
||||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : février 2011 Messages : 4 ![]() |
Merci skuatamad
C'est exactement ce que je recherchais. Pour CinePhil : Le but est de rapprocher des lignes de commandes avec des lignes comptabilisées. C1 et D1 correspondent à : Entite et Journal et n° de document et compte comptable et code chantier et code analytique et code projet et code tiers et code pays et code établissement. C2 et D2 correspondent au N° ligne C3 et D3 correspondent au Montant Merci à tous. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com