Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour 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 06/07/2011, 16h02   #1
Membre du Club
 
Inscription : juillet 2005
Messages : 287
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 287
Points : 56
Points : 56
Par défaut Problème requête sur plusieurs tables avec jointure

Bonjour,

j'ai besoin de récupérer les données de plusieurs tables, en utilisant la requête suivante:
Code :
1
2
3
4
5
SELECT T1.champ1, T1.champ2, T2.champ1, T01.order_2
 FROM  TABLE 1 T1, table2 T2
 INNER JOIN (SELECT max(champ01) + 1 AS order_2, champ02 
                  FROM table3 GROUP BY champ02) T01 ON T1.champ1 =  T01.champ02 
 WHERE T1.id = 5027
Mais j'ai le message suivant:
ORA-00904: "T1"."champ1" : identificateur non valide

Avez-vous une idée ?
Merci

nota: l'application fonctionne egalement avec firebird et la requete passe sous firebird.
richard038 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 16h13   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 433
Points : 10 433
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Le message d'erreur vous dit que votre table Table1 ne possède pas de colonne qui s'appelle champ1.

Il y a un espace entre Table et 1, est-ce voulu ou est-ce une erreur de copier / coller ?
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 16h36   #3
Membre du Club
 
Inscription : juillet 2005
Messages : 287
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 287
Points : 56
Points : 56
C'est effectivement un problème de retranscription de ma requete

Code :
1
2
3
4
5
SELECT T1.champ1, T1.champ2, T2.champ1, T01.order_2
 FROM  TABLE1 T1, table2 T2
 INNER JOIN (SELECT max(champ01) + 1 AS order_2, champ02 
                  FROM table3 GROUP BY champ02) T01 ON T1.champ1 =  T01.champ02 
 WHERE T1.id = 5027
Le champ champ1 existe bel et bien dans Table1. Pour preuve, il suffit que j'inverse les tables dans la ligne FROM pour que la requête fonctionne. Mais, je ne peux pas utiliser cette solution car ma vrai requête comporte encore des jointures mais sur Table2. Et le problème est déplacé sur Table2.

Je fais des essais pour intégrer des sous-requêtes dans la ligne FROM.
richard038 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 16h41   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 433
Points : 10 433
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Je pense avoir compris.
Vous avez mélangé la syntaxe ANSI et la vieille syntaxe pour les jointures.

Il suffit donc d'écrire la requête en respectant complètement la norme :
Code :
1
2
3
4
5
6
7
8
SELECT T1.champ1, T1.champ2, T2.champ1, T01.order_2
  FROM TABLE1 T1
       CROSS JOIN table2 T2
       INNER JOIN (SELECT max(champ01) + 1 AS order_2, champ02
                     FROM table3
                 GROUP BY champ02) T01
         ON T01.champ02 = T1.champ1 
 WHERE T1.id = 5027;
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2011, 08h51   #5
Membre du Club
 
Inscription : juillet 2005
Messages : 287
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 287
Points : 56
Points : 56
Merci, ça fonctionne
richard038 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 21h32.


 
 
 
 
Partenaires

Hébergement Web