begin process at 2012 02 10 16:55:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Oracle

 > 

Requêtes

 > 

Requête un peu trop complexe pour moi


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Requête un peu trop complexe pour moi

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ée dans : col2, val11, valgen, val21, val22


Répondre à ce message

Sujets en rapport avec ce message



Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales