-----Message d'origine-----
Bonjour a tous ,
J'ai du mal avec une requête SQL sous MS Access.
J'explique :
3 tables jointes :
Table : CIRCUIT
- NumCircuit (integer)
- Libelle (String)
- EstUtilisé (bool)
Table : LIEN_CIRCUIT_ENGIN
- NumCircuit (integer)
- NumEngin (integer)
Table : ENGIN
- NumEngin (Integer)
- Libelle (string)
- EstUtilisé (bool)
La relation est construite de sorte à avoir "N" ENGIN
pour un CIRCUIT et
pour chaque ENGIN les "N" CIRCUIT qui l'utilise.
(plusieurs cicuit utilisent les mêmes engin : le nombre
d'engin utilisé par
un circuit n'eset pas déterminé a priori)
La requête que je cherche doit permettre de trouver la
liste des CIRCUIT qui
ne sont pas utilisé et dont AUCUN ENGIN associé n'est
utilisé.
La requête actuelle (qui ne fonctionnement pas encore)
est la suivante :
SELECT Circuit.*
FROM Circuit RIGHT JOIN (LienCircuitEngin RIGHT JOIN
Engin ON
LienCircuitEngin.NumEngin=Engin.NumOrdre) ON
Circuit.NumOrdre=LienCircuitEngin.NumCircuit
WHERE Circuit.IsInUse = false and
Engin.NumOrdre in (SELECT Engin.NumOrdre
FROM Engin LEFT JOIN
( LienCircuitEngin LEFT JOIN Circuit ON
LienCircuitEngin.NumEngin =
Circuit.NumOrdre ) ON Engin.NumOrdre =
LienCircuitEngin.NumEngin
WHERE
engin.IsInUseúlse and Circuit.NumOrdre =
Circuit.NumOrdre);
Il me manque de pouvoir synchroniser la sous requête à la
requête principale
..... et là je sèche....
Merci par avance pour vos conseils.
-
Cordiales salutations.
Serge METZGER
.
-----Message d'origine-----
Bonjour a tous ,
J'ai du mal avec une requête SQL sous MS Access.
J'explique :
3 tables jointes :
Table : CIRCUIT
- NumCircuit (integer)
- Libelle (String)
- EstUtilisé (bool)
Table : LIEN_CIRCUIT_ENGIN
- NumCircuit (integer)
- NumEngin (integer)
Table : ENGIN
- NumEngin (Integer)
- Libelle (string)
- EstUtilisé (bool)
La relation est construite de sorte à avoir "N" ENGIN
pour un CIRCUIT et
pour chaque ENGIN les "N" CIRCUIT qui l'utilise.
(plusieurs cicuit utilisent les mêmes engin : le nombre
d'engin utilisé par
un circuit n'eset pas déterminé a priori)
La requête que je cherche doit permettre de trouver la
liste des CIRCUIT qui
ne sont pas utilisé et dont AUCUN ENGIN associé n'est
utilisé.
La requête actuelle (qui ne fonctionnement pas encore)
est la suivante :
SELECT Circuit.*
FROM Circuit RIGHT JOIN (LienCircuitEngin RIGHT JOIN
Engin ON
LienCircuitEngin.NumEngin=Engin.NumOrdre) ON
Circuit.NumOrdre=LienCircuitEngin.NumCircuit
WHERE Circuit.IsInUse = false and
Engin.NumOrdre in (SELECT Engin.NumOrdre
FROM Engin LEFT JOIN
( LienCircuitEngin LEFT JOIN Circuit ON
LienCircuitEngin.NumEngin =
Circuit.NumOrdre ) ON Engin.NumOrdre =
LienCircuitEngin.NumEngin
WHERE
engin.IsInUse=false and Circuit.NumOrdre =
Circuit.NumOrdre);
Il me manque de pouvoir synchroniser la sous requête à la
requête principale
..... et là je sèche....
Merci par avance pour vos conseils.
-
Cordiales salutations.
Serge METZGER
metzger@simec-sa.com
.
-----Message d'origine-----
Bonjour a tous ,
J'ai du mal avec une requête SQL sous MS Access.
J'explique :
3 tables jointes :
Table : CIRCUIT
- NumCircuit (integer)
- Libelle (String)
- EstUtilisé (bool)
Table : LIEN_CIRCUIT_ENGIN
- NumCircuit (integer)
- NumEngin (integer)
Table : ENGIN
- NumEngin (Integer)
- Libelle (string)
- EstUtilisé (bool)
La relation est construite de sorte à avoir "N" ENGIN
pour un CIRCUIT et
pour chaque ENGIN les "N" CIRCUIT qui l'utilise.
(plusieurs cicuit utilisent les mêmes engin : le nombre
d'engin utilisé par
un circuit n'eset pas déterminé a priori)
La requête que je cherche doit permettre de trouver la
liste des CIRCUIT qui
ne sont pas utilisé et dont AUCUN ENGIN associé n'est
utilisé.
La requête actuelle (qui ne fonctionnement pas encore)
est la suivante :
SELECT Circuit.*
FROM Circuit RIGHT JOIN (LienCircuitEngin RIGHT JOIN
Engin ON
LienCircuitEngin.NumEngin=Engin.NumOrdre) ON
Circuit.NumOrdre=LienCircuitEngin.NumCircuit
WHERE Circuit.IsInUse = false and
Engin.NumOrdre in (SELECT Engin.NumOrdre
FROM Engin LEFT JOIN
( LienCircuitEngin LEFT JOIN Circuit ON
LienCircuitEngin.NumEngin =
Circuit.NumOrdre ) ON Engin.NumOrdre =
LienCircuitEngin.NumEngin
WHERE
engin.IsInUseúlse and Circuit.NumOrdre =
Circuit.NumOrdre);
Il me manque de pouvoir synchroniser la sous requête à la
requête principale
..... et là je sèche....
Merci par avance pour vos conseils.
-
Cordiales salutations.
Serge METZGER
.
-----Message d'origine-----
Bonjour a tous ,
J'ai du mal avec une requête SQL sous MS Access.
J'explique :
3 tables jointes :
Table : CIRCUIT
- NumCircuit (integer)
- Libelle (String)
- EstUtilisé (bool)
Table : LIEN_CIRCUIT_ENGIN
- NumCircuit (integer)
- NumEngin (integer)
Table : ENGIN
- NumEngin (Integer)
- Libelle (string)
- EstUtilisé (bool)
La relation est construite de sorte à avoir "N" ENGIN
pour un CIRCUIT et
pour chaque ENGIN les "N" CIRCUIT qui l'utilise.
(plusieurs cicuit utilisent les mêmes engin : le nombre
d'engin utilisé par
un circuit n'eset pas déterminé a priori)
La requête que je cherche doit permettre de trouver la
liste des CIRCUIT qui
ne sont pas utilisé et dont AUCUN ENGIN associé n'est
utilisé.
La requête actuelle (qui ne fonctionnement pas encore)
est la suivante :
SELECT Circuit.*
FROM Circuit RIGHT JOIN (LienCircuitEngin RIGHT JOIN
Engin ON
LienCircuitEngin.NumEngin=Engin.NumOrdre) ON
Circuit.NumOrdre=LienCircuitEngin.NumCircuit
WHERE Circuit.IsInUse = false and
Engin.NumOrdre in (SELECT Engin.NumOrdre
FROM Engin LEFT JOIN
( LienCircuitEngin LEFT JOIN Circuit ON
LienCircuitEngin.NumEngin >Circuit.NumOrdre ) ON Engin.NumOrdre LienCircuitEngin.NumEngin
WHERE
engin.IsInUseúlse and Circuit.NumOrdre Circuit.NumOrdre);
Il me manque de pouvoir synchroniser la sous requête à la
requête principale
..... et là je sèche....
Merci par avance pour vos conseils.
-
Cordiales salutations.
Serge METZGER
.
-----Message d'origine-----
Bonjour a tous ,
J'ai du mal avec une requête SQL sous MS Access.
J'explique :
3 tables jointes :
Table : CIRCUIT
- NumCircuit (integer)
- Libelle (String)
- EstUtilisé (bool)
Table : LIEN_CIRCUIT_ENGIN
- NumCircuit (integer)
- NumEngin (integer)
Table : ENGIN
- NumEngin (Integer)
- Libelle (string)
- EstUtilisé (bool)
La relation est construite de sorte à avoir "N" ENGIN
pour un CIRCUIT et
pour chaque ENGIN les "N" CIRCUIT qui l'utilise.
(plusieurs cicuit utilisent les mêmes engin : le nombre
d'engin utilisé par
un circuit n'eset pas déterminé a priori)
La requête que je cherche doit permettre de trouver la
liste des CIRCUIT qui
ne sont pas utilisé et dont AUCUN ENGIN associé n'est
utilisé.
La requête actuelle (qui ne fonctionnement pas encore)
est la suivante :
SELECT Circuit.*
FROM Circuit RIGHT JOIN (LienCircuitEngin RIGHT JOIN
Engin ON
LienCircuitEngin.NumEngin=Engin.NumOrdre) ON
Circuit.NumOrdre=LienCircuitEngin.NumCircuit
WHERE Circuit.IsInUse = false and
Engin.NumOrdre in (SELECT Engin.NumOrdre
FROM Engin LEFT JOIN
( LienCircuitEngin LEFT JOIN Circuit ON
LienCircuitEngin.NumEngin >Circuit.NumOrdre ) ON Engin.NumOrdre LienCircuitEngin.NumEngin
WHERE
engin.IsInUseúlse and Circuit.NumOrdre Circuit.NumOrdre);
Il me manque de pouvoir synchroniser la sous requête à la
requête principale
..... et là je sèche....
Merci par avance pour vos conseils.
-
Cordiales salutations.
Serge METZGER
metzger@simec-sa.com
.
-----Message d'origine-----
Bonjour a tous ,
J'ai du mal avec une requête SQL sous MS Access.
J'explique :
3 tables jointes :
Table : CIRCUIT
- NumCircuit (integer)
- Libelle (String)
- EstUtilisé (bool)
Table : LIEN_CIRCUIT_ENGIN
- NumCircuit (integer)
- NumEngin (integer)
Table : ENGIN
- NumEngin (Integer)
- Libelle (string)
- EstUtilisé (bool)
La relation est construite de sorte à avoir "N" ENGIN
pour un CIRCUIT et
pour chaque ENGIN les "N" CIRCUIT qui l'utilise.
(plusieurs cicuit utilisent les mêmes engin : le nombre
d'engin utilisé par
un circuit n'eset pas déterminé a priori)
La requête que je cherche doit permettre de trouver la
liste des CIRCUIT qui
ne sont pas utilisé et dont AUCUN ENGIN associé n'est
utilisé.
La requête actuelle (qui ne fonctionnement pas encore)
est la suivante :
SELECT Circuit.*
FROM Circuit RIGHT JOIN (LienCircuitEngin RIGHT JOIN
Engin ON
LienCircuitEngin.NumEngin=Engin.NumOrdre) ON
Circuit.NumOrdre=LienCircuitEngin.NumCircuit
WHERE Circuit.IsInUse = false and
Engin.NumOrdre in (SELECT Engin.NumOrdre
FROM Engin LEFT JOIN
( LienCircuitEngin LEFT JOIN Circuit ON
LienCircuitEngin.NumEngin >Circuit.NumOrdre ) ON Engin.NumOrdre LienCircuitEngin.NumEngin
WHERE
engin.IsInUseúlse and Circuit.NumOrdre Circuit.NumOrdre);
Il me manque de pouvoir synchroniser la sous requête à la
requête principale
..... et là je sèche....
Merci par avance pour vos conseils.
-
Cordiales salutations.
Serge METZGER
.
-----Message d'origine-----
déjà cette info me permet de simplifier la
requête ...quoi que ...
mais ce n'est pas encore ça ... pour chaque circuit j'ai
en moyenne 15 engin
(de 10 à 20 par exemple) et je veux connaître les
circuits qui ont tous leur
engin de disponible sachant qu'un autre circuit en cours
d'utilisation
utilise certains engin utilisé dans d'autre circuit.
(Plusieurs circuits ont
des engins en commun et et un engin en cours
d'utilisation ne peut-être
utilisé que par un circuit à la fois)
en fait, si j'ai à l'instant T le circuit 1 qui utilise
les engin 1,3,7,9
d'actif ... tous les circuits qui utilisent l'un des
engin 1,3,7,9 ne
peuvent être sélectionnés ...
merci pour d'autre idées ..
Cordiales salutations.
Serge METZGER
"phil" a écrit dans
le message de
news:0af501c3d5ee$a72246c0$
Normalement, dans ta table LIEN_CIRCUIT_ENGIN, tu ne dois
avoir que les couples engin-circuit. C'est-à-dire que si
on a le couple engin numéro 1 circuit numéro 5, on est sûr
que le circuit numéro 5 a l'engin 1, et que l'engin 1 est
sur le numéro 5.
Si c'est bien come ça, je pense que cette requête pourrait
faire l'affaire :
SELECT NumCircuit
FROM CIRCUIT
WHERE NumCircuit NOT IN
(SELECT NumCircuit
FROM LIEN_CIRCUIT_ENGIN);
Ainsi, la requête imbriquée (entre parenthèses) cherche
les circuits qui ont au moins un engin. La requête
principale aura la liste des circuits et enlèvera ceux qui
ont au moins un engin. Il restera ceux qui n'en ont pas...
Et voilà!-----Message d'origine-----
Bonjour a tous ,
J'ai du mal avec une requête SQL sous MS Access.
J'explique :3 tables jointes :
Table : CIRCUIT
- NumCircuit (integer)
- Libelle (String)
- EstUtilisé (bool)
Table : LIEN_CIRCUIT_ENGIN
- NumCircuit (integer)
- NumEngin (integer)
Table : ENGIN
- NumEngin (Integer)
- Libelle (string)
- EstUtilisé (bool)
La relation est construite de sorte à avoir "N" ENGIN
pour un CIRCUIT etpour chaque ENGIN les "N" CIRCUIT qui l'utilise.
(plusieurs cicuit utilisent les mêmes engin : le nombre
d'engin utilisé parun circuit n'eset pas déterminé a priori)
La requête que je cherche doit permettre de trouver la
liste des CIRCUIT quine sont pas utilisé et dont AUCUN ENGIN associé n'est
utilisé.
La requête actuelle (qui ne fonctionnement pas encore)
est la suivante :SELECT Circuit.*
FROM Circuit RIGHT JOIN (LienCircuitEngin RIGHT JOIN
Engin ONLienCircuitEngin.NumEngin=Engin.NumOrdre) ON
Circuit.NumOrdre=LienCircuitEngin.NumCircuit
WHERE Circuit.IsInUse = false and
Engin.NumOrdre in (SELECT Engin.NumOrdre
FROM Engin LEFT JOIN( LienCircuitEngin LEFT JOIN Circuit ON
LienCircuitEngin.NumEngin =Circuit.NumOrdre ) ON Engin.NumOrdre =
LienCircuitEngin.NumEnginWHERE
engin.IsInUseúlse and Circuit.NumOrdre =
Circuit.NumOrdre);
Il me manque de pouvoir synchroniser la sous requête à la
requête principale..... et là je sèche....
Merci par avance pour vos conseils.
-
Cordiales salutations.
Serge METZGER
.
.
-----Message d'origine-----
déjà cette info me permet de simplifier la
requête ...quoi que ...
mais ce n'est pas encore ça ... pour chaque circuit j'ai
en moyenne 15 engin
(de 10 à 20 par exemple) et je veux connaître les
circuits qui ont tous leur
engin de disponible sachant qu'un autre circuit en cours
d'utilisation
utilise certains engin utilisé dans d'autre circuit.
(Plusieurs circuits ont
des engins en commun et et un engin en cours
d'utilisation ne peut-être
utilisé que par un circuit à la fois)
en fait, si j'ai à l'instant T le circuit 1 qui utilise
les engin 1,3,7,9
d'actif ... tous les circuits qui utilisent l'un des
engin 1,3,7,9 ne
peuvent être sélectionnés ...
merci pour d'autre idées ..
Cordiales salutations.
Serge METZGER
metzger@simec-sa.com
"phil" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:0af501c3d5ee$a72246c0$a501280a@phx.gbl...
Normalement, dans ta table LIEN_CIRCUIT_ENGIN, tu ne dois
avoir que les couples engin-circuit. C'est-à-dire que si
on a le couple engin numéro 1 circuit numéro 5, on est sûr
que le circuit numéro 5 a l'engin 1, et que l'engin 1 est
sur le numéro 5.
Si c'est bien come ça, je pense que cette requête pourrait
faire l'affaire :
SELECT NumCircuit
FROM CIRCUIT
WHERE NumCircuit NOT IN
(SELECT NumCircuit
FROM LIEN_CIRCUIT_ENGIN);
Ainsi, la requête imbriquée (entre parenthèses) cherche
les circuits qui ont au moins un engin. La requête
principale aura la liste des circuits et enlèvera ceux qui
ont au moins un engin. Il restera ceux qui n'en ont pas...
Et voilà!
-----Message d'origine-----
Bonjour a tous ,
J'ai du mal avec une requête SQL sous MS Access.
J'explique :
3 tables jointes :
Table : CIRCUIT
- NumCircuit (integer)
- Libelle (String)
- EstUtilisé (bool)
Table : LIEN_CIRCUIT_ENGIN
- NumCircuit (integer)
- NumEngin (integer)
Table : ENGIN
- NumEngin (Integer)
- Libelle (string)
- EstUtilisé (bool)
La relation est construite de sorte à avoir "N" ENGIN
pour un CIRCUIT et
pour chaque ENGIN les "N" CIRCUIT qui l'utilise.
(plusieurs cicuit utilisent les mêmes engin : le nombre
d'engin utilisé par
un circuit n'eset pas déterminé a priori)
La requête que je cherche doit permettre de trouver la
liste des CIRCUIT qui
ne sont pas utilisé et dont AUCUN ENGIN associé n'est
utilisé.
La requête actuelle (qui ne fonctionnement pas encore)
est la suivante :
SELECT Circuit.*
FROM Circuit RIGHT JOIN (LienCircuitEngin RIGHT JOIN
Engin ON
LienCircuitEngin.NumEngin=Engin.NumOrdre) ON
Circuit.NumOrdre=LienCircuitEngin.NumCircuit
WHERE Circuit.IsInUse = false and
Engin.NumOrdre in (SELECT Engin.NumOrdre
FROM Engin LEFT JOIN
( LienCircuitEngin LEFT JOIN Circuit ON
LienCircuitEngin.NumEngin =
Circuit.NumOrdre ) ON Engin.NumOrdre =
LienCircuitEngin.NumEngin
WHERE
engin.IsInUse=false and Circuit.NumOrdre =
Circuit.NumOrdre);
Il me manque de pouvoir synchroniser la sous requête à la
requête principale
..... et là je sèche....
Merci par avance pour vos conseils.
-
Cordiales salutations.
Serge METZGER
metzger@simec-sa.com
.
.
-----Message d'origine-----
déjà cette info me permet de simplifier la
requête ...quoi que ...
mais ce n'est pas encore ça ... pour chaque circuit j'ai
en moyenne 15 engin
(de 10 à 20 par exemple) et je veux connaître les
circuits qui ont tous leur
engin de disponible sachant qu'un autre circuit en cours
d'utilisation
utilise certains engin utilisé dans d'autre circuit.
(Plusieurs circuits ont
des engins en commun et et un engin en cours
d'utilisation ne peut-être
utilisé que par un circuit à la fois)
en fait, si j'ai à l'instant T le circuit 1 qui utilise
les engin 1,3,7,9
d'actif ... tous les circuits qui utilisent l'un des
engin 1,3,7,9 ne
peuvent être sélectionnés ...
merci pour d'autre idées ..
Cordiales salutations.
Serge METZGER
"phil" a écrit dans
le message de
news:0af501c3d5ee$a72246c0$
Normalement, dans ta table LIEN_CIRCUIT_ENGIN, tu ne dois
avoir que les couples engin-circuit. C'est-à-dire que si
on a le couple engin numéro 1 circuit numéro 5, on est sûr
que le circuit numéro 5 a l'engin 1, et que l'engin 1 est
sur le numéro 5.
Si c'est bien come ça, je pense que cette requête pourrait
faire l'affaire :
SELECT NumCircuit
FROM CIRCUIT
WHERE NumCircuit NOT IN
(SELECT NumCircuit
FROM LIEN_CIRCUIT_ENGIN);
Ainsi, la requête imbriquée (entre parenthèses) cherche
les circuits qui ont au moins un engin. La requête
principale aura la liste des circuits et enlèvera ceux qui
ont au moins un engin. Il restera ceux qui n'en ont pas...
Et voilà!-----Message d'origine-----
Bonjour a tous ,
J'ai du mal avec une requête SQL sous MS Access.
J'explique :3 tables jointes :
Table : CIRCUIT
- NumCircuit (integer)
- Libelle (String)
- EstUtilisé (bool)
Table : LIEN_CIRCUIT_ENGIN
- NumCircuit (integer)
- NumEngin (integer)
Table : ENGIN
- NumEngin (Integer)
- Libelle (string)
- EstUtilisé (bool)
La relation est construite de sorte à avoir "N" ENGIN
pour un CIRCUIT etpour chaque ENGIN les "N" CIRCUIT qui l'utilise.
(plusieurs cicuit utilisent les mêmes engin : le nombre
d'engin utilisé parun circuit n'eset pas déterminé a priori)
La requête que je cherche doit permettre de trouver la
liste des CIRCUIT quine sont pas utilisé et dont AUCUN ENGIN associé n'est
utilisé.
La requête actuelle (qui ne fonctionnement pas encore)
est la suivante :SELECT Circuit.*
FROM Circuit RIGHT JOIN (LienCircuitEngin RIGHT JOIN
Engin ONLienCircuitEngin.NumEngin=Engin.NumOrdre) ON
Circuit.NumOrdre=LienCircuitEngin.NumCircuit
WHERE Circuit.IsInUse = false and
Engin.NumOrdre in (SELECT Engin.NumOrdre
FROM Engin LEFT JOIN( LienCircuitEngin LEFT JOIN Circuit ON
LienCircuitEngin.NumEngin =Circuit.NumOrdre ) ON Engin.NumOrdre =
LienCircuitEngin.NumEnginWHERE
engin.IsInUseúlse and Circuit.NumOrdre =
Circuit.NumOrdre);
Il me manque de pouvoir synchroniser la sous requête à la
requête principale..... et là je sèche....
Merci par avance pour vos conseils.
-
Cordiales salutations.
Serge METZGER
.
.
-----Message d'origine-----
déjà cette info me permet de simplifier la
requête ...quoi que ...
mais ce n'est pas encore ça ... pour chaque circuit j'ai
en moyenne 15 engin
(de 10 à 20 par exemple) et je veux connaître les
circuits qui ont tous leur
engin de disponible sachant qu'un autre circuit en cours
d'utilisation
utilise certains engin utilisé dans d'autre circuit.
(Plusieurs circuits ont
des engins en commun et et un engin en cours
d'utilisation ne peut-être
utilisé que par un circuit à la fois)
en fait, si j'ai à l'instant T le circuit 1 qui utilise
les engin 1,3,7,9
d'actif ... tous les circuits qui utilisent l'un des
engin 1,3,7,9 ne
peuvent être sélectionnés ...
merci pour d'autre idées ..
Cordiales salutations.
Serge METZGER
"phil" a écrit dans
le message de
news:0af501c3d5ee$a72246c0$
Normalement, dans ta table LIEN_CIRCUIT_ENGIN, tu ne dois
avoir que les couples engin-circuit. C'est-à-dire que si
on a le couple engin numéro 1 circuit numéro 5, on est sûr
que le circuit numéro 5 a l'engin 1, et que l'engin 1 est
sur le numéro 5.
Si c'est bien come ça, je pense que cette requête pourrait
faire l'affaire :
SELECT NumCircuit
FROM CIRCUIT
WHERE NumCircuit NOT IN
(SELECT NumCircuit
FROM LIEN_CIRCUIT_ENGIN);
Ainsi, la requête imbriquée (entre parenthèses) cherche
les circuits qui ont au moins un engin. La requête
principale aura la liste des circuits et enlèvera ceux qui
ont au moins un engin. Il restera ceux qui n'en ont pas...
Et voilà!-----Message d'origine-----
Bonjour a tous ,
J'ai du mal avec une requête SQL sous MS Access.
J'explique :3 tables jointes :
Table : CIRCUIT
- NumCircuit (integer)
- Libelle (String)
- EstUtilisé (bool)
Table : LIEN_CIRCUIT_ENGIN
- NumCircuit (integer)
- NumEngin (integer)
Table : ENGIN
- NumEngin (Integer)
- Libelle (string)
- EstUtilisé (bool)
La relation est construite de sorte à avoir "N" ENGIN
pour un CIRCUIT etpour chaque ENGIN les "N" CIRCUIT qui l'utilise.
(plusieurs cicuit utilisent les mêmes engin : le nombre
d'engin utilisé parun circuit n'eset pas déterminé a priori)
La requête que je cherche doit permettre de trouver la
liste des CIRCUIT quine sont pas utilisé et dont AUCUN ENGIN associé n'est
utilisé.
La requête actuelle (qui ne fonctionnement pas encore)
est la suivante :SELECT Circuit.*
FROM Circuit RIGHT JOIN (LienCircuitEngin RIGHT JOIN
Engin ONLienCircuitEngin.NumEngin=Engin.NumOrdre) ON
Circuit.NumOrdre=LienCircuitEngin.NumCircuit
WHERE Circuit.IsInUse = false and
Engin.NumOrdre in (SELECT Engin.NumOrdre
FROM Engin LEFT JOIN( LienCircuitEngin LEFT JOIN Circuit ON
LienCircuitEngin.NumEngin >>Circuit.NumOrdre ) ON Engin.NumOrdre >LienCircuitEngin.NumEnginWHERE
engin.IsInUseúlse and Circuit.NumOrdre >Circuit.NumOrdre);
Il me manque de pouvoir synchroniser la sous requête à la
requête principale..... et là je sèche....
Merci par avance pour vos conseils.
-
Cordiales salutations.
Serge METZGER
.
.
-----Message d'origine-----
déjà cette info me permet de simplifier la
requête ...quoi que ...
mais ce n'est pas encore ça ... pour chaque circuit j'ai
en moyenne 15 engin
(de 10 à 20 par exemple) et je veux connaître les
circuits qui ont tous leur
engin de disponible sachant qu'un autre circuit en cours
d'utilisation
utilise certains engin utilisé dans d'autre circuit.
(Plusieurs circuits ont
des engins en commun et et un engin en cours
d'utilisation ne peut-être
utilisé que par un circuit à la fois)
en fait, si j'ai à l'instant T le circuit 1 qui utilise
les engin 1,3,7,9
d'actif ... tous les circuits qui utilisent l'un des
engin 1,3,7,9 ne
peuvent être sélectionnés ...
merci pour d'autre idées ..
Cordiales salutations.
Serge METZGER
metzger@simec-sa.com
"phil" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:0af501c3d5ee$a72246c0$a501280a@phx.gbl...
Normalement, dans ta table LIEN_CIRCUIT_ENGIN, tu ne dois
avoir que les couples engin-circuit. C'est-à-dire que si
on a le couple engin numéro 1 circuit numéro 5, on est sûr
que le circuit numéro 5 a l'engin 1, et que l'engin 1 est
sur le numéro 5.
Si c'est bien come ça, je pense que cette requête pourrait
faire l'affaire :
SELECT NumCircuit
FROM CIRCUIT
WHERE NumCircuit NOT IN
(SELECT NumCircuit
FROM LIEN_CIRCUIT_ENGIN);
Ainsi, la requête imbriquée (entre parenthèses) cherche
les circuits qui ont au moins un engin. La requête
principale aura la liste des circuits et enlèvera ceux qui
ont au moins un engin. Il restera ceux qui n'en ont pas...
Et voilà!
-----Message d'origine-----
Bonjour a tous ,
J'ai du mal avec une requête SQL sous MS Access.
J'explique :
3 tables jointes :
Table : CIRCUIT
- NumCircuit (integer)
- Libelle (String)
- EstUtilisé (bool)
Table : LIEN_CIRCUIT_ENGIN
- NumCircuit (integer)
- NumEngin (integer)
Table : ENGIN
- NumEngin (Integer)
- Libelle (string)
- EstUtilisé (bool)
La relation est construite de sorte à avoir "N" ENGIN
pour un CIRCUIT et
pour chaque ENGIN les "N" CIRCUIT qui l'utilise.
(plusieurs cicuit utilisent les mêmes engin : le nombre
d'engin utilisé par
un circuit n'eset pas déterminé a priori)
La requête que je cherche doit permettre de trouver la
liste des CIRCUIT qui
ne sont pas utilisé et dont AUCUN ENGIN associé n'est
utilisé.
La requête actuelle (qui ne fonctionnement pas encore)
est la suivante :
SELECT Circuit.*
FROM Circuit RIGHT JOIN (LienCircuitEngin RIGHT JOIN
Engin ON
LienCircuitEngin.NumEngin=Engin.NumOrdre) ON
Circuit.NumOrdre=LienCircuitEngin.NumCircuit
WHERE Circuit.IsInUse = false and
Engin.NumOrdre in (SELECT Engin.NumOrdre
FROM Engin LEFT JOIN
( LienCircuitEngin LEFT JOIN Circuit ON
LienCircuitEngin.NumEngin >>Circuit.NumOrdre ) ON Engin.NumOrdre >LienCircuitEngin.NumEngin
WHERE
engin.IsInUseúlse and Circuit.NumOrdre >Circuit.NumOrdre);
Il me manque de pouvoir synchroniser la sous requête à la
requête principale
..... et là je sèche....
Merci par avance pour vos conseils.
-
Cordiales salutations.
Serge METZGER
metzger@simec-sa.com
.
.
-----Message d'origine-----
déjà cette info me permet de simplifier la
requête ...quoi que ...
mais ce n'est pas encore ça ... pour chaque circuit j'ai
en moyenne 15 engin
(de 10 à 20 par exemple) et je veux connaître les
circuits qui ont tous leur
engin de disponible sachant qu'un autre circuit en cours
d'utilisation
utilise certains engin utilisé dans d'autre circuit.
(Plusieurs circuits ont
des engins en commun et et un engin en cours
d'utilisation ne peut-être
utilisé que par un circuit à la fois)
en fait, si j'ai à l'instant T le circuit 1 qui utilise
les engin 1,3,7,9
d'actif ... tous les circuits qui utilisent l'un des
engin 1,3,7,9 ne
peuvent être sélectionnés ...
merci pour d'autre idées ..
Cordiales salutations.
Serge METZGER
"phil" a écrit dans
le message de
news:0af501c3d5ee$a72246c0$
Normalement, dans ta table LIEN_CIRCUIT_ENGIN, tu ne dois
avoir que les couples engin-circuit. C'est-à-dire que si
on a le couple engin numéro 1 circuit numéro 5, on est sûr
que le circuit numéro 5 a l'engin 1, et que l'engin 1 est
sur le numéro 5.
Si c'est bien come ça, je pense que cette requête pourrait
faire l'affaire :
SELECT NumCircuit
FROM CIRCUIT
WHERE NumCircuit NOT IN
(SELECT NumCircuit
FROM LIEN_CIRCUIT_ENGIN);
Ainsi, la requête imbriquée (entre parenthèses) cherche
les circuits qui ont au moins un engin. La requête
principale aura la liste des circuits et enlèvera ceux qui
ont au moins un engin. Il restera ceux qui n'en ont pas...
Et voilà!-----Message d'origine-----
Bonjour a tous ,
J'ai du mal avec une requête SQL sous MS Access.
J'explique :3 tables jointes :
Table : CIRCUIT
- NumCircuit (integer)
- Libelle (String)
- EstUtilisé (bool)
Table : LIEN_CIRCUIT_ENGIN
- NumCircuit (integer)
- NumEngin (integer)
Table : ENGIN
- NumEngin (Integer)
- Libelle (string)
- EstUtilisé (bool)
La relation est construite de sorte à avoir "N" ENGIN
pour un CIRCUIT etpour chaque ENGIN les "N" CIRCUIT qui l'utilise.
(plusieurs cicuit utilisent les mêmes engin : le nombre
d'engin utilisé parun circuit n'eset pas déterminé a priori)
La requête que je cherche doit permettre de trouver la
liste des CIRCUIT quine sont pas utilisé et dont AUCUN ENGIN associé n'est
utilisé.
La requête actuelle (qui ne fonctionnement pas encore)
est la suivante :SELECT Circuit.*
FROM Circuit RIGHT JOIN (LienCircuitEngin RIGHT JOIN
Engin ONLienCircuitEngin.NumEngin=Engin.NumOrdre) ON
Circuit.NumOrdre=LienCircuitEngin.NumCircuit
WHERE Circuit.IsInUse = false and
Engin.NumOrdre in (SELECT Engin.NumOrdre
FROM Engin LEFT JOIN( LienCircuitEngin LEFT JOIN Circuit ON
LienCircuitEngin.NumEngin >>Circuit.NumOrdre ) ON Engin.NumOrdre >LienCircuitEngin.NumEnginWHERE
engin.IsInUseúlse and Circuit.NumOrdre >Circuit.NumOrdre);
Il me manque de pouvoir synchroniser la sous requête à la
requête principale..... et là je sèche....
Merci par avance pour vos conseils.
-
Cordiales salutations.
Serge METZGER
.
.