ACCESS 2007: Jointure muli-values utilisant WHERE
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:
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:
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:
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 ...:cry:
Merci,
Cordialement