Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/12/2006, 10h26   #1
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 114
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 114
Points : 34
Points : 34
Envoyer un message via MSN à Ora92_IDS
Par défaut Probleme dans le select

Bonjour tout le monde,
j'ai un probleme dans le select
voila un exemple :
table a1
c1,c2,c3
-1 c4 20
-2 c5 20
-3 c6 20
..... ..

table a2
c4,c5,c6..
-1 1 1
-2 1 1
-3 1 1
.......

je dois recuperer la valeur de c2 elle doit etre unique, puis j'accede a la table a2 pour recuperer valeur de la column correspondante a la valeur de c2 pour une ligne donnee.
Comment je peux resoudre ce prob et Merci d'avance pour vos aides
Ora92_IDS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2006, 10h40   #2
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Ca va pas être simple. En SQL dynamique
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2006, 10h47   #3
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 114
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 114
Points : 34
Points : 34
Envoyer un message via MSN à Ora92_IDS
Citation:
Envoyé par nuke_y
Ca va pas être simple. En SQL dynamique
Je travail dans report 6i et je peux la traiter au niveau de column de formule, je ne sais pas si un curseur va m'aider dans ce cas la
Ora92_IDS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2006, 10h53   #4
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Citation:
Envoyé par Ora92_IDS
Je travail dans report 6i
Merci de la précision
http://www.developpez.net/forums/d28716/bases-donnees/oracle/regles-infos-lire-poster/
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2006, 11h04   #5
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 114
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 114
Points : 34
Points : 34
Envoyer un message via MSN à Ora92_IDS
Bon, pour mon cas je travail dans Oracle report 6i et je dois recuperer une valeur dans un champ x, cette valeur viens de la table a2 d'une column selon la valeur recuperee de la table a1 voir en haut la description des tables
bon avec la premiere requete pour recuperer la premiere valeur c'est facile ce que me gene c'est la deuxieme requete :
voila la 1er requete :
Code :
1
2
3
4
SELECT c2
INTO v1
FROM a1
WHERE c1 = x;
pour la 2eme requete j'ai fais:
Code :
1
2
3
4
5
 
SELECT v1
INTO v2
FROM a2
WHERE c4 = x1;
mais ca marche pas
Ora92_IDS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2006, 12h19   #6
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 114
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 114
Points : 34
Points : 34
Envoyer un message via MSN à Ora92_IDS
Je suis en train de tester un curseur je crois que c'est la seule solution apres le teste je vais poster mon code
Ora92_IDS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2006, 13h42   #7
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

Informations forums :
Inscription : janvier 2005
Messages : 7 299
Points : 8 650
Points : 8 650
Pour information, Ora est présent sur le chat et j'avais proposé la peut-être solution :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE OR REPLACE procedure Test
AS
	laRequete	varchar(512);
BEGIN
	laRequete:='select ';
	FOR ligne IN (SELECT DISTINCT(C2) FROM A1)
	loop
		laRequete:=laRequete||ligne.C2||',';
	end loop;
	laRequete:=laRequete||l' from A2';
	execute immediate laRequete;
END;
/
Je n'ai pas eu de retour donc j'attend son retour via le forum (et éventuellement le chat).
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2006, 13h54   #8
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 448
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 448
Points : 4 194
Points : 4 194
Avec un decode ça passe très bien si les colonnes sont connues et de même type.
Code :
1
2
3
4
SELECT DECODE(a1.c2, 'c4', a2.c4, 'c5', a2.c5, 'c6', a2.c6)
FROM a1, a2
WHERE a1.c1 = x
AND a2.c4 = -1
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2006, 17h06   #9
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 114
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 114
Points : 34
Points : 34
Envoyer un message via MSN à Ora92_IDS
Oui ca se passe tres bien avec Decode.
Merci a vous tous
Ora92_IDS est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h22.


 
 
 
 
Partenaires

Hébergement Web