Bonjour,

J'aimerais effectuer une modification sur ma requete SQL afin d'en modifier le comportement et je sollicite votre aide pour cela.

J'ai 3 tables reliées par des jointures simples :

Table ROL :

NO INDICE
00001 09087
00001 9832
00001
00002 1234
00002
00003
00003


Table LIGNE :

INDICE ID
09087 01
1234 02
9832 03

Table AUT :

ID SECTEUR
01 100
02 200
03 300

Je souhaite obtenir un tableau contenant une ligne par NO et le SECTEUR correspondant au plus petit INDICE. Ma difficulté est d'obtenir également une ligne pour chaque NO ne contenant pas d'INDICE.

Ma requête est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
ROL.NO,  
aut.secteur
FROM
  ROL,
  AUT,
  LIGNE
WHERE
  AND  LIGNE.ID = AUT.ID
  AND  ROL.INDICE = LIGNE.INDICE
              and LIGNE.INDICE in (select min(indice) from rol, ligne where ligne.indice = rol.indice group by rol.no)
              and LIGNE.indice = ROL.indice
A l'exécution de ma requête, j'obtiens les résultats suivants :

NO SECTEUR
00001 100
00002 200

J'aimerais donc obtenir également une ligne pour le NO = 00003 et le secteur vide.

NO SECTEUR
00001 100
00002 200
00003

J'espère qu'avec cet exemple, mon problème est clair.
N'hésitez pas à me demander plus d'informations si besoin.

Je vous remercie pour le temps que vous consacrerez à mon problème.

Cordialement,
koshunter