Bonjour,

je travaille sur une base de données constituée de 25 tables environ.
Le fonctionnement est "simple". Les tables représentent des informations concernant les salariés de la société, c'est-à-dire que j'ai une table contenant les informations personnelles de du salarié, une table contenant son salaire, une table contenant son poste, ...
Pourquoi prendre des tables pour chaque information? La raison est simple. La société fonctionne par période est donc ce sont les informations concernant une période précise (et donc j'ai une table contenant les période)

Je cherche à faire une requête me permettant de récupérer les informations de tous les salariés. Je suis arrivé à cette requête
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT Employe.Matricule, Employe.Soc, Employe.Nom, Employe.Prenom, Employe.Sexe, Employe.Panel, Employe.Actif, ListeSocietes.Libelle AS LibelleSociete, Etablissement.Ets, Section.Code AS CodeSection, ListeSections.Libelle AS LibelleSection, Classification.Code AS CodeClassification, ListeClassifications.Libelle AS LibelleClassification, ListeClassifications.Niveau, Statut.Libelle AS LibelleStatut, Pole_Technologique.Valeur AS PoleTechno, Site.Libelle AS LibelleSite, Contrat.Libelle AS LibelleContrat, ListeResponsables.Nom + ' ' + ListeResponsables.Prenom AS NomResponsable, Activite.Pourcentage AS TauxActivite
FROM Employe
INNER JOIN ListeSocietes ON Employe.Soc = ListeSocietes.Soc
INNER JOIN Etablissement ON Employe.Matricule = Etablissement.Matricule AND Employe.Soc = Etablissement.Soc
INNER JOIN Section ON Employe.Matricule = Section.Matricule AND Employe.Soc = Section.Soc
INNER JOIN ListeSections ON ListeSocietes.Soc = ListeSections.Soc AND Section.Soc = ListeSections.Soc AND Section.Code = ListeSections.Code
INNER JOIN Classification ON Employe.Matricule = Classification.Matricule AND Employe.Soc = Classification.Soc
INNER JOIN ListeClassifications ON ListeSocietes.Soc = ListeClassifications.Soc AND Classification.Soc = ListeClassifications.Soc AND Classification.Code = ListeClassifications.Code
INNER JOIN Statut ON Employe.Matricule = Statut.Matricule AND Employe.Soc = Statut.Soc
INNER JOIN Pole_Technologique ON Employe.Matricule = Pole_Technologique.Matricule AND Employe.Soc = Pole_Technologique.Soc
INNER JOIN Site ON Employe.Matricule = Site.Matricule AND Employe.Soc = Site.Soc
INNER JOIN Contrat ON Employe.Matricule = Contrat.Matricule AND Employe.Soc = Contrat.Soc
INNER JOIN Responsable ON Employe.Matricule = Responsable.Matricule AND Employe.Soc = Responsable.Soc
INNER JOIN ListeResponsables ON ListeSocietes.Soc = ListeResponsables.Soc AND Responsable.Soc = ListeResponsables.Soc AND Responsable.idResponsable = ListeResponsables.id
INNER JOIN Activite ON Employe.Matricule = Activite.Matricule AND Employe.Soc = Activite.Soc
WHERE (Etablissement.DatePeriode = '01/01/2010') AND (Section.DatePeriode = '01/01/2010') AND (Classification.DatePeriode = '01/01/2010') AND (Statut.DatePeriode = '01/01/2010') AND (Pole_Technologique.DatePeriode = '01/01/2010') AND (Site.DatePeriode = '01/01/2010') AND (Contrat.DatePeriode = '01/01/2010') AND (Responsable.DatePeriode = '01/01/2010') AND (Activite.DatePeriode = '01/01/2010')

Cette requête me permet bel et bien de récupérer les informations concernant les salariés et la période voulut MAIS... les salariés ne possédant pas d'information pour cette période sont mis à l'écart... J'aimerai lister TOUS les salariés, et dans le cas où il n'y aurait pas d'information récupérer des valeurs NULL ou quelquechose du genre
Je ne maîtrise malheureusement pas assez les requêtes SQL pour corriger mon problème. Est ce que quelqu'un voit où est ce que mon problème réside?