RDV+DIAL chat illimit� dans ta r�g!
no save
Assistance
Achat
News

Forum | bases de données
jointure requete
Rayh, le lun. 29 juin 2009 à 14:58:48
Bonjour,
et merci de prendre de votre temps pour m'aider


Voila mon problème, je suis actuellement en stage et je dois géré le droit d'accès des utilisateurs qui sont "cachés" dans trois tables différentes enfin c'est un bon bordel.

requete (sans jointure)
SELECT Distinct(LGAC.T_AGENT.COAGEN), NOAGEN, Prenom FROM LGAC.T_AGENT WHERE LGAC.T_AGENT.COAGEN IN(SELECT COAGE2 FROM LGAC.T_ACAGEN WHERE COAGE1='A999') OR LGAC.T_AGENT.COAGEN IN(SELECT LGAC.T_APSERV.COAGEN FROM LGAC.T_SERVIC, LGAC.T_DIRECT, LGAC.T_ACDIRE, LGAC.T_APSERV WHERE LGAC.T_ACDIRE.CODIRE = LGAC.T_SERVIC.CODIRE AND LGAC.T_APSERV.COSERV=LGAC.T_SERVIC.COSERV AND LGAC.T_ACDIRE.COAGEN ='A999') OR LGAC.T_AGENT.COAGEN IN(SELECT LGAC.T_APSERV.COAGEN FROM LGAC.T_ACSERV, LGAC.T_APSERV WHERE LGAC.T_APSERV.COSERV=LGAC.T_ACSERV.COSERV AND LGAC.T_ACSERV.COAGEN='A999') or LGAC.T_AGENT.COAGEN='A999'

Donc ça c'est ma requête pour récupére les nom et les prénom des agents sur lesquels la personne à un droit de regard
mais c'est une fois que j'ai ça j'aimerais récupérer le numéro de service de l'agent qui se trouve dans une autre table en fesant une jolie jointure (normal)


Requete (avec jointure)
SELECT Distinct(LGAC.T_AGENT.COAGEN), NOAGEN, COSERV, Prenom FROM LGAC.T_AGENT, LGAC.T_APSERV WHERE LGAC.T_APSERV.COAGEN=LGAC.T_AGENT.COAGEN AND LGAC.T_AGENT.COAGEN IN(SELECT COAGE2 FROM LGAC.T_ACAGEN WHERE COAGE1='A999') OR LGAC.T_AGENT.COAGEN IN(SELECT LGAC.T_APSERV.COAGEN FROM LGAC.T_SERVIC, LGAC.T_DIRECT, LGAC.T_ACDIRE, LGAC.T_APSERV WHERE LGAC.T_ACDIRE.CODIRE = LGAC.T_SERVIC.CODIRE AND LGAC.T_APSERV.COSERV=LGAC.T_SERVIC.COSERV AND LGAC.T_ACDIRE.COAGEN ='A999') OR LGAC.T_AGENT.COAGEN IN(SELECT LGAC.T_APSERV.COAGEN FROM LGAC.T_ACSERV, LGAC.T_APSERV WHERE LGAC.T_APSERV.COSERV=LGAC.T_ACSERV.COSERV AND LGAC.T_ACSERV.COAGEN='A999') or LGAC.T_AGENT.COAGEN='A999'


et la je ne comprends pas il répete autant de fois le nom et prénom de l'agent qu'il y a de service


Exemple (requete sans la jointure):

Dupond Jean
Dupont Toto
George Sand


Exemple (requete avec la jointure admettons qu'il y ait 4 service):

Dupond Jean
Dupond Jean
Dupond Jean
Dupond Jean
Dupont Toto
Dupont Toto
Dupont Toto
Dupont Toto
....

Enfin voila je pense que vous avez compris
D'avance merci bcpConfiguration: Windows XP Internet Explorer 6.0
Version Web
Réalisé par RedShift
no save