Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Q:SQL] : question SQL

1 réponse
Avatar
METZGER Serge
Bonjour a tous ,...

Je suis sous ACCESS 2000
J'ai les tables suivantes :

Table : Circuit
NumOrdre (cle primaire)
Libellé
EstUtilisé

Table : Engin
NumOrdre (cle primaire)
Libellé
EstUtilisé

Table : LienCircuitEngin
NumOrdre
NumCircuit
NumEngin

Avec relation : Circuit.NumOrdre -> LienCircuitEngin.NumCircuit (1 à
plusieur)
LienCircuitEngin.NumEngin -> Engin.NumOrdre (1 à
plusieur)

De sorte qu'a chaque circuit on puisse affecter un nombre variable d'engin.
Un circuit utilise certain engin de l'installation.
Mon problème de requète SQL : je recherche la liste des circuits non
utilisés dont tout les engins qui le compose ne sont pas utilisés. (sachant
qu'un engin est utilisé par plusieurs circuit)

Par avance merci a toute contribition.

Cordiales salutations.
Serge METZGER.

1 réponse

Avatar
Rv
Salut,

Quelle est la condition qui nous permet de dire qu'un engin n'est utilisé
par aucun circuit?
Je demande cela à cause de votre parenthèse :
(sachant qu'un engin est utilisé par plusieurs circuit)
Si on considère naturellement que le champs EstUtilisé de la table engin

fait foi (et là je ne vois plus lien avec votre parenthèse) on peut utiliser
cette requête:

SELECT sr1.lib
FROM
(SELECT Circuit.Libellé as lib, Count(Engin.NumOrdre) AS nbrCircuit
FROM (Circuit INNER JOIN LienCircuitEngin ON Circuit.NumOrdre LienCircuitEngin.NumCircuit)
INNER JOIN Engin ON LienCircuitEngin.NumEngin Engin.NumOrdre
WHERE Circuit.EstUtilisé=0 AND Engin.EstUtilisé=0
GROUP BY Circuit.Libellé
) AS sr1
INNER JOIN
(SELECT LienCircuitEngin.NumCircuit, Count(LienCircuitEngin.NumCircuit)
AS nbrCircuit
FROM LienCircuitEngin
GROUP BY LienCircuitEngin.NumCircuit
) AS sr2
ON sr1.nbrCircuit = sr2.nbrCircuit
GROUP BY sr1.lib;

A+

Rv

Ca marche car j'ai toujours des doutes à cause de la parenthèse?

Allez une autre parenthèse: pour éviter les soucis inutiles il est
préférable d'eviter les accents dans les noms de champs (EstUtilisé,
Libellé)

A+

Rv


"METZGER Serge" a écrit dans le message de
news:cbgmc2$1m5$
Bonjour a tous ,...

Je suis sous ACCESS 2000
J'ai les tables suivantes :

Table : Circuit
NumOrdre (cle primaire)
Libellé
EstUtilisé

Table : Engin
NumOrdre (cle primaire)
Libellé
EstUtilisé

Table : LienCircuitEngin
NumOrdre
NumCircuit
NumEngin

Avec relation : Circuit.NumOrdre -> LienCircuitEngin.NumCircuit (1 à
plusieur)
LienCircuitEngin.NumEngin -> Engin.NumOrdre (1 à
plusieur)

De sorte qu'a chaque circuit on puisse affecter un nombre variable
d'engin.

Un circuit utilise certain engin de l'installation.
Mon problème de requète SQL : je recherche la liste des circuits non
utilisés dont tout les engins qui le compose ne sont pas utilisés.
(sachant

qu'un engin est utilisé par plusieurs circuit)

Par avance merci a toute contribition.

Cordiales salutations.
Serge METZGER.