|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2008 Messages : 61 ![]() |
Bonjour, je suis assez novice en PL/SQL puisque j'ai surtout l'habitude de faire du SQL
J'ai réussi à faire ce que je voulais, mais pour un soucis de performance, j'aimerais faire évoluer ma requête Je ne sais pas si cela est possible. 20060928090404Esc 854 OUI OUI 20060928090404Esc 854 OUI NON Voici un exemple de mon problème Ma requête me procure certains doublons de ce genre. Le 1er champ : n° releve (dans les tables) Le 2nd champ : code (dans les tables) Le 3ème champ : menace (fait suite à un decode) Le 4ème champ : influence (encore un decode) Je voudrais faire en sorte que : Si un n° de releve a une influence en OUI et en NON, retenir que la ligne avec le OUI. Si un n° de releve a une influence avec uniquement NON, le garder. Si un n° de releve a une influence avec uniquement OUI, le garder. Je veux que la ligne en cas de doublon n'apparaisse pas dans le résultat. J'ai dit que j'ai réussi à avoir le résultat escompté, mais grâce à Excel. J'ai créé une macro qui à supprimer les doublons : Code :
Mais j'aimerais que ces doublons n'apparaissent pas dans le résultat de la requête dès le départ. Voici la requête SQL actuelle : Code :
Merci d'avance pour vos réponses. |
||||
|
|
00
|
|
|
#2 | ||
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
Un truc comme ça ?
Code sql :
|
||
|
10
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2008 Messages : 61 ![]() |
Bonjour, non le MAX ne change rien (peut être parce que ce n'est pas une variable numérique)
J'y avait bien pensé, mais sans le moindre effet, j'ai toujours mes "doublons" |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
Max fonctionne aussi avec les caractères en classant selen l'ordre des codes caractères.
Normalement ça devrait fonctionner pour le dédoublonnage avec préférence pour le 'OUI' par rapport au 'NON'. Le "group by" te garantit l'unicité de tes 3 premières colonnes. |
|
00
|
|
|
#5 |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 739 ![]() |
Je suis d'accord avec ojo77, le max devrait fonctionner.
Dans ton post tu ne parles pas du v.LB_VEGETATION, est-il bien le même pour chaque doublon aussi ? Aussi rien à voir mais : decode((COUNT (DISTINCT m.TYPE_MENACE)),'0','NON','OUI'), ne devrais tu pas comparer le COUNT avec 0 et non '0' ? Il se peut qu'Oracle convertisse tout seul mais pourquoi faire complique ?
__________________
Je ne réponds pas aux questions techniques par MP, le forum est là pour cela. La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber. (\ _ /) (='.'=) Voici Lapinou. Aidez le à conquérir le monde (")-(") en le reproduisant |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2008 Messages : 61 ![]() |
Oula mille excuses, j'ai suivi bêtement ce qui était mis sans voir le GROUP BY
Le champ était toujours dedans. Une fois enlevé, oui, c'est devenu unique ^^ Merci, je ne pensais pas que cela aurait fonctionné. Au sujet du count, il est primordial vu que la donnée n'est pas dans la table, mais je compte le nombre de données. Désolé pour ce topic du coup, j'ai cherché à faire compliqué pour une chose ultra simple Merci encore |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com