Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Requête un peu trop complexe pour moi [ Oracle / Requêtes ] (Didierdu92)

jeudi 13 décembre 2007 à 19:29:18 | Requête un peu trop complexe pour moi

Didierdu92

Bonjour,

Voici l'objet de ma question. J'ai une table TABLE qui contient 3 colonnes COL1, COL2 et COL3. Le résultat de ma requête doit être la concaténation des valeurs conrtenues dans les colonnes COL1 et COL2 (séparé par un '_') + la valeur contenue dans COL3 mais avec une subtilité. Prenons l'exemple suivant

TABLE contient ces valeurs :

COL1      COL2      COL3
----------------------------
VAL11    VAL21    VAL31
VAL12    VAL22    VAL32
VAL13    VAL23    VAL33

Donc comme résultat, on devrait obtenir

VAL11_VAL21   VAL31
VAL12_VAL22   VAL32
VAL13_VAL23   VAL33

Mais dans COL2, on peut avoir une valeur générique que l'on appelera VALGEN qui regroupe l'ensemble des valeurs spécifiques VAL21, VAL22, VAL23, ... (genre VALGEN='Véhicule' si VAL21, VAL22, VAL23 devaient être respectivement 'Voiture', 'Camion', 'Moto'), d'où la subtilité/
Si çà doit arriver, voilà comment la requête doit se comporter :
Prenons maintenant cet exemple :

COL1      COL2      COL3
----------------------------
VAL11    VAL21    VAL31
VAL12    VAL22    VAL32
VAL13    VAL23    VAL33

VAL11    VALGEN VAL34
VAL12    VALGEN VAL35

(Constatez que VAL11 et VAL12 de la colonne COL1 sont à la fois associés à une valeur spécifique et à la valeur générique VALGEN dans la colonne COL2)

La requête devra sortir comme résultat

VAL11_VAL21     VAL31
VAL11_VAL21     VAL34 <-
VAL12_VAL22     VAL32
VAL12_VAL22     VAL35 <-
VAL13_VAL23     VAL33
VAL11_VALGEN VAL34
VAL12_VALGEN VAL35

C'est à dire que les couples VAL11\VALGEN et VAL12\VALGEN sont traités comme les autres mais en plus les couples VAL11\VAL21 et VAL12\VAL22 récupèrent respectivement la valeur de la colonne COL3 des couples VAL11\VALGEN et VAL12\VALGEN

J'espère avoir été clair dans mes explications.
Je vous remercie par avance de votre aide car je suis un peu perdu.

Didier

samedi 23 août 2008 à 16:14:23 | Re : Requête un peu trop complexe pour moi

mementosql


Bonjour,

Aller, je me lance ; si j ai bien compris ton pb (pas sur), voici ce que je propose

select col1 || '_' || col2 recol1, col3 from tatable
union
 select t1.col1 || '_' || t1.col2 rescol1, t2.col3 from tatable t1 inner join tatable t2 on (t1.col1= t2.col1 and T2.col2 = 'VALGEN' and t1.col2 <> 'VALGEN')
order by rescol1

MS
http://aide-oracle.blogspot.com



Cette discussion est classé dans : col2, val11, valgen, val21, val22


Répondre à ce message

Sujets en rapport avec ce message



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,125 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.