Probleme avec requete

Résolu
Boudchiche Messages postés 59 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 25 novembre 2006 - 12 mai 2006 à 20:10
Boudchiche Messages postés 59 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 25 novembre 2006 - 31 mai 2006 à 22:54
Salut j'ai poste mon probleme mais je n'ai pas eu de reponse je vais essaye de le simplifie un peu esperant que quelqu'un me donne une issue
Table1 Table2 Table3
A A A
B B C
C B B
Table1=stock initiale
Table2=Achat
Table3=Ventes
et les lettres A,B,C representent les articles
Parfois j'ai des articles dans le stocks initiale et dans achat et ventes
Parfois j'ai un article dans le stocks initiale mais j'ai pas fait d'achat mais j'ai realise des ventes
Et parfois je ne l'ai pas dans le stock initiale mais je l'ai achete et j'ai fait des ventes.


Je veut afficher les articles et la somme de leur quantite
Donnez moi juste une idee je suis bloque
Merci

23 réponses

crilun Messages postés 114 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 17 octobre 2006
29 mai 2006 à 18:46
crilun


--cette requete si tu veux la somme de tout ton stock et de toutes tes valeurs de stocke quelquesoi le produit

SELECT

    SUM(QteInventaire)+SUM(QteAchete)-SUM(Qtevendu) AS QteStock,

    SUM(valeurInventaire)+SUM(ValeurAchete)-SUM(ValeurVendu) AS valeurStock

FROM (

    SELECT

        P.Produit,

        C.Couleur,

        (SELECT SUM(Qte) FROM
DetailInventaire WHERE ID_Produit=P.ID_Produit AND
ID_Couleur=C.IDCouleur) AS QteInventaire,

        (SELECT SUM(Valeur) FROM
DetailInventaire WHERE ID_Produit=P.ID_Produit AND
ID_Couleur=C.IDCouleur) AS ValeurInventaire,

        (SELECT SUM(Quantite) FROM Achat
WHERE ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS QteAchete,

        (SELECT SUM(Valeur) FROM Achat
WHERE ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS
ValeurAchete,

        (SELECT SUM(Quantite) FROM Vente
WHERE ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS QteVendu,

        (SELECT SUM(Valeur) FROM Vente
WHERE ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS ValeurVendu

    FROM

        Article A

        INNER JOIN Produit P ON A.ID_Produit=P.ID_Produit

        INNER JOIN Couleur C ON A.ID_Couleur=C.ID_Couleur

    )


--celle ci si tu veut la somme des stocke et valeurs d'achats par produits de couleur

--(je suppose ici que le produitA à toujours la meme couleur)

SELECT

    P.Produit,

    C.Couleur

    SUM(QteInventaire)+SUM(QteAchete)-SUM(Qtevendu) AS QteStock,

    SUM(valeurInventaire)+SUM(ValeurAchete)-SUM(ValeurVendu) AS valeurStock

FROM (

    SELECT

        P.Produit,

        C.Couleur,

        (SELECT SUM(Qte) FROM
DetailInventaire WHERE ID_Produit=P.ID_Produit AND
ID_Couleur=C.IDCouleur) AS QteInventaire,

        (SELECT SUM(Valeur) FROM
DetailInventaire WHERE ID_Produit=P.ID_Produit AND
ID_Couleur=C.IDCouleur) AS ValeurInventaire,

        (SELECT SUM(Quantite) FROM Achat
WHERE ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS QteAchete,

        (SELECT SUM(Valeur) FROM Achat
WHERE ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS
ValeurAchete,

        (SELECT SUM(Quantite) FROM Vente
WHERE ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS QteVendu,

        (SELECT SUM(Valeur) FROM Vente
WHERE ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS ValeurVendu

    FROM

        Article A

        INNER JOIN Produit P ON A.ID_Produit=P.ID_Produit

        INNER JOIN Couleur C ON A.ID_Couleur=C.ID_Couleur

    )

GROUP BY

    P.Produit,

    C.Couleur


--voila sa devrait marché neanmoins je ne peut pas tester don cj epeut pas etre sur a 100%

--donc si jamais ca marche pas envoi moi a la rigueur un .mdb de base avec un jeu d'essai

-- et je la racrocherais a mon serveur pour te la tester et la corriger si besoin est
0
crilun Messages postés 114 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 17 octobre 2006
29 mai 2006 à 18:49
crilun

pour l    deuxieme cette requete suffit en fait,

pas besoin de sommer 2 fois :


SELECT

    P.Produit,

    C.Couleur

    QteInventaire+QteAchete-Qtevendu AS QteStock,

    valeurInventaire+ValeurAchete-ValeurVendu AS valeurStock

FROM (

    SELECT

        P.Produit,

        C.Couleur,

        (SELECT SUM(Qte) FROM
DetailInventaire WHERE ID_Produit=P.ID_Produit AND
ID_Couleur=C.IDCouleur) AS QteInventaire,


        (SELECT SUM(Valeur) FROM DetailInventaire WHERE
ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS ValeurInventaire,

        (SELECT SUM(Quantite) FROM Achat
WHERE ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS QteAchete,

        (SELECT SUM(Valeur) FROM Achat
WHERE ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS
ValeurAchete,

        (SELECT SUM(Quantite) FROM Vente
WHERE ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS QteVendu,

        (SELECT SUM(Valeur) FROM Vente
WHERE ID_Produit=P.ID_Produit AND ID_Couleur=C.IDCouleur) AS ValeurVendu

    FROM

        Article A

        INNER JOIN Produit P ON A.ID_Produit=P.ID_Produit

        INNER JOIN Couleur C ON A.ID_Couleur=C.ID_Couleur

    )
0
Boudchiche Messages postés 59 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 25 novembre 2006
30 mai 2006 à 15:24
Salut
j'ai tout essaye mais je n'ai pas encore reussit a trouve le bon astuce je t'ai envoye mon adresse email dans un message prive pour que tu me donne la tienne pour que je t'envoit la base de donnee
Et merci pour tout
0
Rejoignez-nous