Requète de la quantité en stock

Résolu/Fermé
runworld Messages postés 6 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 20 mars 2014 - 16 mars 2014 à 13:43
runworld Messages postés 6 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 20 mars 2014 - 20 mars 2014 à 22:35
bonjour à tous, débutant en programmation asp.net/vb.net je développe un projet de gestion de stock avec base de données sql server 2008 r2. mes recherches m'ont permis d'avancé timidement mais surement sur mon projet jusqu'à ce jour. voila que je suis coincé à cause d'un problème qui m'empêche maintenant d'avancé. et cela fait que je perd les boules. en faite je voudrais avoir la valeur en terme de quantité de mon stock que j'affiche dans un gridview quand l'utilisateur sélectionne une famille d'article dans un dropdownlist. mes tables concerner sont: article, mouvement, type mouvement, site, sous site, faire. j'aimerais bien poster un image de ma page asp.net et de mon MPD mais je sais pas comment on le fait sur ce site.s'il vous plait aidez moi je sais plus ou mettre la tête.

merci d'avance,

5 réponses

runworld Messages postés 6 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 20 mars 2014
17 mars 2014 à 17:01
voila ma requête testé dans sql server 2008 r2 avant de la codé en vb.net mais elle ne marche pas (dans sql server 2008 r2) aider moi les geek de l'informatique

select ARTICLE.CODART,ARTICLE.CODFAMART,ARTICLE.DESIGART,ARTICLE.SEUILMINI,MOUVEMENT.DATMVT,TYPE_MOUVEMENT.LIBTYPMVT,
SITE.LIBSITE,SOUS_SITE.LIBSOUSIT SUM(ENTREE.QTEMVT)-SUM(SORTIE.QTEMVT) AS STOCK
FROM
ARTICLE,MOUVEMENT,TYPE_MOUVEMENT,FAIRE ENTREE,FAIRE SORTIE,SITE,SOUS_SITE
WHERE
ENTREE.CODMVT IN (SELECT CODMVT FROM MOUVEMENT,TYPE_MOUVEMENT WHERE TYPE_MOUVEMENT.LIBTYPMVT LIKE 'ENTR' AND TYPE_MOUVEMENT.CODTYPMVT=MOUVEMENT.CODTYPMVT)
AND SORTIE.CODMVT IN (SELECT CODMVT FROM MOUVEMENT,TYPE_MOUVEMENT WHERE TYPE_MOUVEMENT.LIBTYPMVT LIKE 'SORT' AND TYPE_MOUVEMENT.CODTYPMVT=MOUVEMENT.CODTYPMVT)
0
runworld Messages postés 6 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 20 mars 2014
17 mars 2014 à 17:06
Autre information
voici la liste des différents type_mouvement : ( Sortie rebu
Sortie payante
Sortie gratuite
Sortie regule inventaire
Entrée pharmacie F1
Entrée pharmacie F2
Entrée regule inventaire
Transfert1-
Transfert1+
Transfert2-
Transfert2+ )
mais seule les sortie (tous les type de sortie que j'ai cité ci-dessus décrémente le stock) et seule les entrées (tous les types d'entrées que j'ai cité ci-dessus incrémente le stock) le type transfert n'agit pas sur le stock parce que mis dans un stock fictif.
0
runworld Messages postés 6 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 20 mars 2014
17 mars 2014 à 20:09
voici ma nouvelle requête:

SELECT HEALTHBOARD.dbo.ARTICLE.CODART, HEALTHBOARD.dbo.ARTICLE.CODFAMART, HEALTHBOARD.dbo.ARTICLE.DESIGART,
HEALTHBOARD.dbo.ARTICLE.SEUILMINI, HEALTHBOARD.dbo.FAIRE.QTEMVT, HEALTHBOARD.dbo.MOUVEMENT.DATMVT,
HEALTHBOARD.dbo.TYPE_MOUVEMENT.LIBTYPMVT, HEALTHBOARD.dbo.SOUS_SITE.LIBSOUSIT, HEALTHBOARD.dbo.SITE.LIBSITE,

FROM HEALTHBOARD.dbo.ARTICLE, HEALTHBOARD.dbo.FAIRE, HEALTHBOARD.dbo.MOUVEMENT, HEALTHBOARD.dbo.SOUS_SITE,
HEALTHBOARD.dbo.TYPE_MOUVEMENT, HEALTHBOARD.dbo.SITE
WHERE HEALTHBOARD.dbo.ARTICLE.CODART = HEALTHBOARD.dbo.FAIRE.CODART AND
HEALTHBOARD.dbo.FAIRE.CODMVT = HEALTHBOARD.dbo.MOUVEMENT.CODMVT AND
HEALTHBOARD.dbo.MOUVEMENT.CODSOUSIT = HEALTHBOARD.dbo.SOUS_SITE.CODSOUSIT AND
HEALTHBOARD.dbo.MOUVEMENT.CODTYPMVT = HEALTHBOARD.dbo.TYPE_MOUVEMENT.CODTYPMVT AND FAIRE.CODMVT IN
(SELECT MOUVEMENT_2.CODMVT
FROM HEALTHBOARD.dbo.MOUVEMENT MOUVEMENT_2, HEALTHBOARD.dbo.TYPE_MOUVEMENT TYPE_MOUVEMENT_2
WHERE TYPE_MOUVEMENT_2.LIBTYPMVT LIKE 'ENTR' AND TYPE_MOUVEMENT_2.CODTYPMVT = MOUVEMENT_2.CODTYPMVT) AND
FAIRE.CODMVT IN
(SELECT MOUVEMENT_1.CODMVT
FROM HEALTHBOARD.dbo.MOUVEMENT MOUVEMENT_1, HEALTHBOARD.dbo.TYPE_MOUVEMENT TYPE_MOUVEMENT_1
WHERE TYPE_MOUVEMENT_1.LIBTYPMVT LIKE 'SORT' AND TYPE_MOUVEMENT_1.CODTYPMVT = MOUVEMENT_1.CODTYPMVT)

mais quand je l'exécute dans sql server 2008 r2 j'ai l'erreur suivante:
Msg 156, Niveau 15, État 1, Ligne 5

Syntaxe incorrecte vers le mot clé 'FROM'.
Msg 156, Niveau 15, État 1, Ligne 13
Syntaxe incorrecte vers le mot clé 'AND'.

s'ils vous plait aidez moi à resoudre mon problème
0
runworld Messages postés 6 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 20 mars 2014
18 mars 2014 à 10:58
salut la communauté voila j'ai finalement eclaté m'a requête en deux requête:
1) requête pour avoir la somme des entrées
select ARTICLE.CODART,ARTICLE.DESIGART,ARTICLE.SEUILMINI,mouvement.DATMVT,TYPE_MOUVEMENT.LIBTYPMVT,
SITE.LIBSITE,sous_site.LIBSOUSIT,SUM(FAIRE.QTEMVT) as qte_entree

from FAIRE faire, mouvement mouvement, TYPE_MOUVEMENT TYPE_MOUVEMENT, ARTICLE ARTICLE,
SITE site,SOUS_SITE sous_site

where faire.CODMVT=mouvement.CODMVT and TYPE_MOUVEMENT.CODTYPMVT= mouvement.CODTYPMVT and site.CODSITE=sous_site.CODSITE and sous_site.CODSOUSIT= mouvement.CODSOUSIT

and faire.CODART=ARTICLE.CODART and TYPE_MOUVEMENT.LIBTYPMVT like 'entr%'
group by ARTICLE.CODART,ARTICLE.DESIGART,
ARTICLE.SEUILMINI,mouvement.DATMVT,TYPE_MOUVEMENT.LIBTYPMVT,SITE.LIBSITE,sous_site.LIBSOUSIT

2) requête pour avoir la somme des sorties

select ARTICLE.CODART,ARTICLE.DESIGART,ARTICLE.SEUILMINI,mouvement.DATMVT,TYPE_MOUVEMENT.LIBTYPMVT,
SITE.LIBSITE,sous_site.LIBSOUSIT,SUM(FAIRE.QTEMVT) as qte_sortie

from FAIRE faire, mouvement mouvement, TYPE_MOUVEMENT TYPE_MOUVEMENT, ARTICLE ARTICLE,
SITE site,SOUS_SITE sous_site
where faire.CODMVT=mouvement.CODMVT and TYPE_MOUVEMENT.CODTYPMVT= mouvement.CODTYPMVT and site.CODSITE=sous_site.CODSITE and sous_site.CODSOUSIT= mouvement.CODSOUSIT
and faire.CODART=ARTICLE.CODART and TYPE_MOUVEMENT.LIBTYPMVT like'sorti%'
group by ARTICLE.CODART,ARTICLE.DESIGART,
ARTICLE.SEUILMINI,mouvement.DATMVT,TYPE_MOUVEMENT.LIBTYPMVT,SITE.LIBSITE,sous_site.LIBSOUSIT

maintenant je veux faire la somme de mes deux requêtes (différence) pour avoir le stock. comment procéder aider moi s'ils vous plait
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
runworld Messages postés 6 Date d'inscription dimanche 16 mars 2014 Statut Membre Dernière intervention 20 mars 2014
20 mars 2014 à 22:35
bonsoir à tous pour tous ceux qui seront confronté à ce problème un jour voici la solution:

SELECT
a.CODART,
a.CODFAMART ,
a.DESIGART,
a.SEUILMINI,
max(m.DATMVT)as DATMVT,
min(LIBTYPMVT)as LIBTYPMVT,
s.LIBSITE,
ss.LIBSOUSIT,

(SUM(CASE WHEN tm.LIBTYPMVT LIKE 'entr%' THEN f.QTEMVT ELSE 0 END)
-
SUM(CASE WHEN tm.LIBTYPMVT LIKE 'sorti%' THEN f.QTEMVT ELSE 0 END)) as stock



FROM FAIRE f
INNER JOIN mouvement m ON f.CODMVT = m.CODMVT
INNER JOIN TYPE_MOUVEMENT tm ON tm.CODTYPMVT = m.CODTYPMVT
INNER JOIN ARTICLE a ON f.CODART = a.CODART
INNER JOIN SOUS_SITE ss ON ss.CODSOUSIT = m.CODSOUSIT
INNER JOIN SITE s ON s.CODSITE = ss.CODSITE

WHERE tm.LIBTYPMVT LIKE 'entr%'
OR tm.LIBTYPMVT LIKE 'sorti%'

GROUP BY
a.CODART,
a.DESIGART,
a.CODFAMART ,
a.SEUILMINI,

s.LIBSITE,
ss.LIBSOUSIT

adapter la requête à vos besoins.
merci
0