Bonjour,
aprèrs lecture sur le POST sur les jointures, je pense que mon problème viens de là.

Excusez-moi pour la longueur de ma question

Je suis actuellement sur la création d'une base de données, et je suis entrain de finaliser les SORTIES.
Mon modèle comprenant beaucoup d'exception:
_ composant commun à plusieurs OUVRAGES
_ composant à déstocker en fonction de la longeur/avancée/hauteur
_ composant à déstocker manuellement: les PLUS-VALUES

J'ai entré tous mes composants dans une table unique et je les ai catégorisé à l'aide du champs CATEGORIE lié à une table similaire comprend les expressions: NEANT / PLUS-VALUE / LONGEUR / AVANCEE / HAUTEUR

J'ai créé une requête pour chaque type de composant sous la forme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT COMPOSANT.N°LigneComp, COMPOSANT.Reférence, Count(LIGNE_CMD_CLI.[#N°LigneOuv]) AS [Nombre_d'ouvrage_ayant_utilisé_ce_composant], Sum(LIGNE_CMD_CLI.Avancée) AS SommeDeAvancée
FROM COMPOSANT LEFT JOIN (OUVRAGE LEFT JOIN LIGNE_CMD_CLI ON OUVRAGE.N°_LigneOuv = LIGNE_CMD_CLI.[#N°LigneOuv]) ON COMPOSANT.N°LigneComp = OUVRAGE.Nomenclature.Value
WHERE (((COMPOSANT.Catégorie)="Avancée"))
GROUP BY COMPOSANT.N°LigneComp, COMPOSANT.Reférence;
et pour les composants communs à déstocker automatiquement en fonction de leurs utilisation par OUVRAGE:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT COMPOSANT.N°LigneComp, COMPOSANT.Reférence, COMPOSANT.Utilisé_par_ouvrage, Count(LIGNE_CMD_CLI.[#N°LigneOuv]) AS Ouvrages_réalisés, (([Ouvrages_réalisés])*([COMPOSANT].[Utilisé_par_ouvrage])) AS SommeCompNeant
FROM COMPOSANT LEFT JOIN (OUVRAGE LEFT JOIN LIGNE_CMD_CLI ON OUVRAGE.N°_LigneOuv = LIGNE_CMD_CLI.[#N°LigneOuv]) ON COMPOSANT.N°LigneComp = OUVRAGE.Nomenclature.Value
WHERE (((COMPOSANT.Catégorie)="Néant"))
GROUP BY COMPOSANT.N°LigneComp, COMPOSANT.Reférence, COMPOSANT.Utilisé_par_ouvrage
ORDER BY COMPOSANT.Reférence;
Le PROBLEME: Afin de faciliter l'utilisation de la BDD, j'ai fait une restriction WHERE (CATEGORIE=Plus-Value) dans ma table TABLE_CMD_CLIENT sur les PLUS-VALUES de la table COMPOSANT.

Mais voila, lorsque je veux prendre en compte toutes mes requêtes SORTIES, celle des PLUS-VALUE n'en pas prise en compte car on ne peut pas prendre en compte la table COMPOSANT mais uniquement le champs PLUS-VALUE.Value ...

Je peux savoir combien de composants "plus-value" ont été commandés mais uniquement avec la requête suivant (sans jointure):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT LIGNE_CMD_CLI.[#Plus-value].Value, Count(LIGNE_CMD_CLI.[#Plus-value]) AS [CompteDe#Plus-value]
FROM LIGNE_CMD_CLI
GROUP BY LIGNE_CMD_CLI.[#Plus-value].Value;
Je sais pas si cela est clair mais ma question est la suivante:
comment faire une requête selection en joingnant la table LIGNE_CMD_CLIENT et la COMPOSANT pour créer la table SORTIE
?

S'il vous plait, auriez-vous une piste, j'ai essayer les jointures (INNER JOINT, RIGHT and LEFT) ça marche pas, peut être qu'il est impossible avec la clause WHERE dans la table LIGNE_CMD_CLIENT ...

Merci,
Cordialement