Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2726 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requette Sql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requette Sql

n°124386
BreizhynGd
Hello world!
Posté le 10-04-2002 à 18:46:09  profilanswer
 

J'ai une petite requete à faire:
3 tables
SALARIE (SAL_ID, SAL_LIB)
SERVICE (SER_ID, SER_ID)
SERSAL (SESA_SAL, SESA_SER)
 
un salarie peut appartenir à 1 ou plusieurs services
 
Je connais le SAL_ID, et je veux lister ts les libéllés des services appartenant au salarié..
 
Merci

 

[jfdsdjhfuetppo]--Message édité par BreizhynGd--[/jfdsdjhfuetppo]

mood
Publicité
Posté le 10-04-2002 à 18:46:09  profilanswer
 

n°124388
raph93
Posté le 10-04-2002 à 18:54:01  profilanswer
 

BreizhynGd a écrit a écrit :

J'ai une petite requete à faire:
3 tables
SALARIE (SAL_ID, SAL_LIB)
SERVICE (SER_ID, SER_ID)
SERSAL (SESA_SAL, SESA_SER)
 
un salarie peut appartenir à 1 ou plusieurs services
 
Je connais le SAL_ID, et je veux lister ts les libéllés des services appartenant au salarié..
 
Merci  
 
 




 
SELECT SAL_LIB FROM SALARIE WHERE SAL_ID = 'what u want' ;


---------------
Nothing can stop me, I'm never satisfied, I take what i want, refuse to be denied...
n°124390
BreizhynGd
Hello world!
Posté le 10-04-2002 à 18:56:01  profilanswer
 

je crois que tu n'as pas bien lu...  
je veux la listes des services, pas la liste des salariés!! (trop simple! :) )

 

[jfdsdjhfuetppo]--Message édité par BreizhynGd--[/jfdsdjhfuetppo]

n°124391
raph93
Posté le 10-04-2002 à 18:57:09  profilanswer
 

BreizhynGd a écrit a écrit :

je crois que tu n'as pas bien lu...  
je veux la listes des services, pas la liste des salariés!!  




 
dans SERVICE t'as une clé etrangere ,???

 

[jfdsdjhfuetppo]--Message édité par raph93--[/jfdsdjhfuetppo]


---------------
Nothing can stop me, I'm never satisfied, I take what i want, refuse to be denied...
n°124393
HappyHarry
Posté le 10-04-2002 à 18:57:58  profilanswer
 

select ser_lib from service where ser_id in (select sesa_ser from sersal where sesa_sal="what u want" )

n°124399
BreizhynGd
Hello world!
Posté le 10-04-2002 à 19:01:59  profilanswer
 

raph93 a écrit a écrit :

 
 
dans SERVICE t'as une clé etrangere ,???  
 




 
non, pas dans service, vu que que plusiers salariés peuvent avoir le meme service
 
HappyHarry, je vais essayer cela... je tiens au courant

 

[jfdsdjhfuetppo]--Message édité par BreizhynGd--[/jfdsdjhfuetppo]


---------------
Sparf! - Http://sparf.free.fr - France
n°124432
HappyHarry
Posté le 10-04-2002 à 19:51:20  profilanswer
 

j'espere juste uque la bdd n'est pas mysql, pask'il ne supporte pas les requetes imbriquées
si tu veux chercher les libelles des services d'apres le nom de l'employe, il faut ajouter un niveau d'imbrication supplémentaire

n°124441
BreizhynGd
Hello world!
Posté le 10-04-2002 à 20:18:59  profilanswer
 

non, c'est du VB. J'ai pas encore essayé (j'arrive chez moi :sarcastic: )... j'essaie...


---------------
Sparf! - Http://sparf.free.fr - France
n°124442
HappyHarry
Posté le 10-04-2002 à 20:19:33  profilanswer
 

je parle pas du langage de prog, mais de la base de donnée que tu utilises, m'enfin ...

n°124456
BreizhynGd
Hello world!
Posté le 10-04-2002 à 20:53:40  profilanswer
 

oui, scuse...
Access
de toute façons, çà passe par l'obdc...
(j'ai oublié la base à l'école  :cry: j'essaie demain donc! )

 

[jfdsdjhfuetppo]--Message édité par BreizhynGd--[/jfdsdjhfuetppo]


---------------
Sparf! - Http://sparf.free.fr - France
mood
Publicité
Posté le 10-04-2002 à 20:53:40  profilanswer
 

n°124545
irulan
Posté le 11-04-2002 à 09:53:22  profilanswer
 

Je supppose les points suivants exacts :
 - la table SERVICE est en fait définie comme SERVICE (SER_ID, SER_LIB)(et non SERVICE (SER_ID, SER_ID) comme indiqué initialement)
 - la table SERSAL (SESA_SAL, SESA_SER) est une table de relation entre SERVICE et SALARIE, où SESA_SAL référence SAL_ID de SALARIE et SESA_SER référence SER_ID de SERVICE.
 
Si ce n'est pas le cas tant pis, il fallait être plus précis  :na:  
 
Dans le cas où mes suppositions sont exactes, la requête suivante devrait répondre à ton besoin :
 
Select SAL_LIB, SER_LIB
 from SALARIE, SERVICE, SERSAL
 where SALARIE.SAL_ID = SERSAL.SAL_ID
 and SERVICE.SER_ID = SERSAL.SER_ID;

 
Cette requête te renvoie la liste de TOUS les salariés avec le(s) service(s) correspondant(s). Si tu veux connaître le renseignement pour un salarié donné (SAL_ID = XXX), la requête devient :  
 
Select SAL_LIB, SER_LIB
 from SALARIE, SERVICE, SERSAL
 where SALARIE.SAL_ID = SERSAL.SAL_ID
 and SERVICE.SER_ID = SERSAL.SER_ID
 and SAL_ID = XXX;

 
 
Pas besoin de requête imbriquée ou de IN  :sarcastic:, deux jointures suffisent.
Il vaut mieux d'ailleurs éviter les requêtes imbriquées ou les IN quand on peut, car ces éléments sont très gourmands en ressources (bon là évidemment ça ne se voit pas mais sur des tables avec quelques centaines de milliers de lignes, on voit la différence !)

 

[jfdsdjhfuetppo]--Message édité par irulan--[/jfdsdjhfuetppo]

n°124555
Erwan_
Posté le 11-04-2002 à 10:18:53  profilanswer
 

BreizhynGd a écrit a écrit :

J'ai une petite requete à faire:
3 tables
SALARIE (SAL_ID, SAL_LIB)
SERVICE (SER_ID, SER_ID)
SERSAL (SESA_SAL, SESA_SER)
 
un salarie peut appartenir à 1 ou plusieurs services
 
Je connais le SAL_ID, et je veux lister ts les libéllés des services appartenant au salarié..
 
Merci  
 
 




 
Ya UNE ERREUR DANS LA TABLE SERVICE !!!
 
OUUUUUU LA HONTE : 0 SUR 20 !   :gun:

n°124813
BreizhynGd
Hello world!
Posté le 11-04-2002 à 17:16:05  profilanswer
 

SALARIE (SAL_ID, SAL_LIB)  
SERVICE (SER_ID, SER_LIB)  
SERSAL (SESA_SAL, SESA_SER)  
 
j'ai essayé les requete avec les jointures, elles ne fonctionnaient pas. Je retente ce soir... en essayant les 2 méthodes...


---------------
Sparf! - Http://sparf.free.fr - France
n°124888
HappyHarry
Posté le 11-04-2002 à 18:54:24  profilanswer
 

BreizhynGd a écrit a écrit :

SALARIE (SAL_ID, SAL_LIB)  
SERVICE (SER_ID, SER_LIB)  
SERSAL (SESA_SAL, SESA_SER)  
 
j'ai essayé les requete avec les jointures, elles ne fonctionnaient pas. Je retente ce soir... en essayant les 2 méthodes...  




 
marchait pas la mienne  :??:

n°124925
BreizhynGd
Hello world!
Posté le 11-04-2002 à 20:33:13  profilanswer
 

j'ai pas encore essayé... :( En fait, ma disquette comporte un secteur défectueux..  :cry:  :cry:  :cry:  
je tiens au courant lundi...


---------------
Sparf! - Http://sparf.free.fr - France
n°124926
Youpla
Posté le 11-04-2002 à 20:36:31  profilanswer
 

la table SERSAL est une table d association entre SALARIE et SERVICE donc je ne vois pas le probleme
 
Select SER_LIB
FROM SERVICE, SERSAL
WHERE SER_ID = SESA_SER
AND SESA_SAL = "L id du salarie"
 
Si bien evidement SESA_SAL represente la cle primaire de la table SALARIE (ie l identifiant du salarie) et SESAR_SER represente la cle primaire de la table service (ie identifiant du service)
 
Youpla

n°124927
Youpla
Posté le 11-04-2002 à 20:37:14  profilanswer
 

Youpla a écrit a écrit :

la table SERSAL est une table d association entre SALARIE et SERVICE donc je ne vois pas le probleme
 
Select SER_LIB
FROM SERVICE, SERSAL
WHERE SER_ID = SESA_SER
AND SESA_SAL = "L id du salarie";
 
Si bien evidement SESA_SAL represente la cle primaire de la table SALARIE (ie l identifiant du salarie) et SESAR_SER represente la cle primaire de la table service (ie identifiant du service)
 
Youpla  



n°124963
irulan
Posté le 11-04-2002 à 22:55:17  profilanswer
 

Oups je n'avais pas intégré que tu ne voulais que le nom des services, pour un SAL_ID donné.
 
Dans ce cas de figure, c'est la requête de Youpla qui est la plus pertinente.

n°125575
BreizhynGd
Hello world!
Posté le 13-04-2002 à 19:59:24  profilanswer
 

Happy Harry => çà marche, Youpla aussi...
Cependant, pour mieux vous expliquer le pb, c'ets juste mon recordset qui se faisait remplir 5 lignes plus bas :( J'avais fait comme Youpla au départ mais bon... çà m'apprendra à pas regarder partout...  
 
Merci à Tous


---------------
Sparf! - Http://sparf.free.fr - France

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requette Sql

 

Sujets relatifs
[SQL & C++BUILDER] Need help : Big pb avec Create Table !!![SQL SERVER] Comment importer des données???
[SQL] Formatage du résultat[SQL] [Postgre] remplir automatiquement une table
[SQL] Histoire de doublons...[delphi] pb de requêtes SQL
[SQL] Comment exporter des tables faites sous Acces vers SQLSQL Server : Foreign Key ... {pour les bons}
[MS SQL SERVER] taille en octets des tables[phpMyAdmin 2.2.1] Comment rapatrier structure et données SQL ?
Plus de sujets relatifs à : Requette Sql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR