Bonjour,
J'ai quelques bases en SQL mais j'ai besoin d'aide sur ce coup là.
J'ai une base de données sous access pour gérer un parc de téléphones mobiles. Je l'ai volontairement simplifiée au maximum pour le cas présent.
La partie qui m'intéresse ici concerne 3 tables :
Utilisateur (ID, Nom)
Mobile (IMEI, Statut)
Affecter (ID, IMEI)
Un mobile peut ne pas être affecté en étant au stock ou en réparation par exemple.
-> Je souhaite obtenir un état de parc incluant tous les mobiles, leurs statuts, ainsi que l'identifiant et le nom de l'utilisateur si le téléphone est affecté. S'il ne l'est pas, avoir des valeur NULL par exemple m'irait très bien.
Je parviens facilement à obtenir toutes ces informations pour les téléphones affectés mais je n'arrive pas à inclure les autres.
Après quelques recherches je comprends qu'il faudrait en SQL utiliser un FULL OUTER JOIN mais ce n'est pas pris en charge par Access. Il faudrait donc utiliser une UNION d'un LEFT JOIN et d'un RIGHT JOIN mais quelle que soit la syntaxe que j'essaie Access me retourne "Expression JOIN non supportée"
La requête de base qui renvoie toutes les infos pour les mobiles affectés :
SELECT MOBILE.imei,MOBILE.statut,UTILISATEUR.id,UTILISATEUR.nom
FROM MOBILE INNER JOIN (AFFECTER INNER JOIN UTILISATEUR ON AFFECTER.[id] = UTILISATEUR.[id]) ON MOBILE.imei = AFFECTER.imei;
Si l'un de vous à la solution je le remercie d'avance
Bireli
Partager