Bonjour,
Je suis confronté à un probléme sur une requête depuis quelque temps et je n'arrive malheuresement pas à m'en tirer. Je vous expose mon probléme :
J'ai des scripts qui pour fonctionner ont besoin de savoir si des logiciels sont installés sur la machine. Le nombre de script par machine est aléatoire. Je vous donne un exemple :
Script 1 a besoin de Visio 2007
Script 1 a besoin de Office 2007
Script 2 a besoin de Visio 2003
Ordinateur 1 a le logiciel Office 2007
Ordinateur 2 a le logiciel Office 2007
Ordinateur 2 a le logiciel Vision 2007
Le script 1 ne peut donc se lancer que sur la machine 2. La table des machines est COMPUTER, celle des logiciels est CAPACITIES, la table entre les deux (1,n des deux côtés) est la table COMPUTERCAPACITIES, la table comprenant les scripts s'appelle SCRIPT et enfin la jointure entre SCRIPT et CAPACITIES se fait via la table SCRIPTREQUIREMENTS.
Alors j'ai tenté ceci :
Le probléme est que cette requête retourne les scripts où un des logiciels est installé alors qu'il faut qu'ils le soient tous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Select ID, SCRIPTNAME From AUTOUSER.SCRIPTREQUIREMENTS sr, AUTOUSER.CAPACITIES c Where sr.CAPACITYID = c.ID INTERSECT Select ID, SCRIPTNAME From AUTOUSER.SCRIPTREQUIREMENTS sr, AUTOUSER.CAPACITIES c, AUTOUSER.COMPUTERCAPACITIES cc Where sr.CAPACITYID = c.ID And cc.CAPACITYID = c.ID And COMPUTER = 'Nom de l\'ordinateur'
Si vous pouvez m'aider, je vous remercie d'avance.
Partager