SQL tout tout début

SQL tout tout début - SQL/NoSQL - Programmation

Marsh Posté le 08-06-2005 à 15:45:55    

Salut!
Je débute en sql et base de données et c'est un peu fouillis,bref.Je travaille sous SAS.
Mon problème (simplifié) :
J'ai deux tables :
 
La première, finances,avec une deux variables :
Labo, budget
La seconde,agents, avec 4 variables :
Nom, Labo, Matricule, Grade
Je dois extraire de la table 2 les noms des personnes appartenant à un labo dont le budget est dans une certaine fourchette.(budget apparent dans la table 1,donc).
J'y arrive uniquement en créant une table intermédiaire qui sélectionne les bons labos à partir de la table 1, puis en appliquant la contrainte labo=labo2 sur la table 2.Mais tout en un , pas possible :pt1cable:  
 
Du coup ca fait un pâté classique du débutant en prog :
 

Citation :

proc sql;
create table finances2 as
select labo as labo2
from finances where budget between 50 and 350;
select nom,matr,grade from agents,finances2
where labo = labo2 ;
quit;


 :sweat:  
 
Ce qui ne passe pas par exemple :

Citation :

proc sql;
select nom,matr,grade
from agents,finances
where labo = (select labo from finances where budget between 50 and 350);
quit;


 
avec pour erreur:
"Référence ambiguë, la col. labo se trouve dans plus d'une table"
 
 
 
Comment le faire plus simple,svp? Merci.  :jap:  
 

Reply

Marsh Posté le 08-06-2005 à 15:45:55   

Reply

Marsh Posté le 08-06-2005 à 15:54:28    

Tu px pas faire une seule requete,
je connais pas la syntaxe de ce langage mais je vais essaye de te pondreun truc :

Code :
  1. proc sql;
  2. select nom
  3. from agents a, finances f
  4. where a.labo = f.labo
  5. and f.budget between 50 and 350;


 
Essaye ça mais je te garantie rien !
(enfin dans le SQl que je connais, ca fonctionnerais sans prob il me semble

Reply

Marsh Posté le 08-06-2005 à 16:06:42    


Et ben ça marche nickel!C'est même super simple.
Je me suis un peu compliqué la vie sur ce coup-là.  [:alex_]  
Merci. :jap:
 


Message édité par Profil supprimé le 08-06-2005 à 16:08:41
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed