IF dans Requête SQL

IF dans Requête SQL - SQL/NoSQL - Programmation

Marsh Posté le 22-04-2005 à 09:37:39    

Bonjour,
 
Je suis en stage et je dois faire une base de données du personnel.
J'ai plusieurs tables, notamment la table salariés et la table diplôme.
Sachant qu'un salarié peut avoir plusieurs diplômes, je voudrais faire une requête qui me donne le dernier diplôme obtenu de chaque salariés. Il faut mettre un critère sur la date d'obtention du diplôme mais je ne vois pas comment l'écrire. Il faut que ce soit la date la plus récente par salarié.
 
On m'a dit qu'on pouvait intégrer des IF dans les requetes SQL. Je pense que ça peut être la solution mais je ne sait pas comment le faire.
 
Si quelqu'un sait comment les intégrer, ou a une autre idée, je le remercie d'avance pour son aide.

Reply

Marsh Posté le 22-04-2005 à 09:37:39   

Reply

Marsh Posté le 22-04-2005 à 09:55:31    

PVAN a écrit :

Bonjour,
 
Je suis en stage et je dois faire une base de données du personnel.
J'ai plusieurs tables, notamment la table salariés et la table diplôme.
Sachant qu'un salarié peut avoir plusieurs diplômes, je voudrais faire une requête qui me donne le dernier diplôme obtenu de chaque salariés. Il faut mettre un critère sur la date d'obtention du diplôme mais je ne vois pas comment l'écrire. Il faut que ce soit la date la plus récente par salarié.
 
On m'a dit qu'on pouvait intégrer des IF dans les requetes SQL. Je pense que ça peut être la solution mais je ne sait pas comment le faire.
 
Si quelqu'un sait comment les intégrer, ou a une autre idée, je le remercie d'avance pour son aide.


A mon avis le IF n'est pas le meilleur moyen. Le plus simple serait de faire une sous requête imbriquée qui fait un top 1 ORDER BY date_diplôme DESC et faire le join de la table des salariés sur cette sous-requête.  
Cela pourrait donner qqch comme:
SELECT S.Nom, S.Prenom, D.Date_Diplome, D.Diplome
FROM Salaries S INNER JOIN (SELECT TOP 1 Diplome, Date_Diplome, idEmploye
FROM Diplome
ORDER BY Date_Diplome DESC) D ON S.idEmploye = D.idEmploye;
 
Voilà, j'espère que cela va t'aider

Reply

Marsh Posté le 22-04-2005 à 09:57:48    

Je vais essayer.
 
En tous cas merci beaucoup pour ton aide !

Reply

Marsh Posté le 22-04-2005 à 10:15:33    

ça marche !!!!!!
 
Merci beaucoup.
 
Bonne journée. :hello:

Reply

Sujets relatifs:

Leave a Replay

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