Je voudrais calculer le taux de rotation de mes stocks exprimé en nombres de
mois !
Actuellement, j'ai développer en ACCESS un petit programme qui
successivement,
va coller dans une table temporaire la somme des stocks par localisation et
par famille d'article.
Ensuite en parallèle, je fais la somme des articles expédiés sur une période
exprimé en mois.
Et pour finir je regroupe le tout dans une ultime requete qui me donne le
niveau de stock et la qte expédiée et avec ca je peux calculer mon niveau de
stock en mois !
J'ai pour ce faire 5 étapes (soit 5 requetes) !
2 pour avoir les infos sur les stocks
2 pour avoir les infos sur les expéditions
1 la finale pour regrouper le tout !
Comment je pourrais faire pour écrire tout cela en une pièce ?
Est-ce possible ?
J'ai reussi a regrouper pas mal de choses ! J'ai maintenant plus que deux requetes. J'ai une requetes principale qui regroupe mes quantittés en stock par famille d'article et par plage de localisation. J'ai une autre requete qui fait la meme chose avec les expéditions. Maintenant, j'arrive dans ACCESS a ajouter le resultat de la deuxième à la première. Mais le probleme est que j'arrive a faire cela en deux requetes dans ACCESS ! Comment regrouper en une seule ???
Parce que je sais faire une requete imbriquée quand il s'agit d'exploiter le résultat d'une requete pour en créer une autre ! Mais la, mon probleme est que je ne veux pas exploiter le resultat mais simplement afficher les données. Comme si je faisais un lien entre deux table ! mettre bout a bout le listing des stocks et en face mettre les qté expédiées !
J'ai reussi a regrouper pas mal de choses !
J'ai maintenant plus que deux requetes.
J'ai une requetes principale qui regroupe mes quantittés en stock par
famille d'article et par plage de localisation.
J'ai une autre requete qui fait la meme chose avec les expéditions.
Maintenant, j'arrive dans ACCESS a ajouter le resultat de la deuxième à la
première.
Mais le probleme est que j'arrive a faire cela en deux requetes dans ACCESS
!
Comment regrouper en une seule ???
Parce que je sais faire une requete imbriquée quand il s'agit d'exploiter le
résultat d'une requete pour en créer une autre !
Mais la, mon probleme est que je ne veux pas exploiter le resultat mais
simplement afficher les données. Comme si je faisais un lien entre deux
table ! mettre bout a bout le listing des stocks et en face mettre les qté
expédiées !
J'ai reussi a regrouper pas mal de choses ! J'ai maintenant plus que deux requetes. J'ai une requetes principale qui regroupe mes quantittés en stock par famille d'article et par plage de localisation. J'ai une autre requete qui fait la meme chose avec les expéditions. Maintenant, j'arrive dans ACCESS a ajouter le resultat de la deuxième à la première. Mais le probleme est que j'arrive a faire cela en deux requetes dans ACCESS ! Comment regrouper en une seule ???
Parce que je sais faire une requete imbriquée quand il s'agit d'exploiter le résultat d'une requete pour en créer une autre ! Mais la, mon probleme est que je ne veux pas exploiter le resultat mais simplement afficher les données. Comme si je faisais un lien entre deux table ! mettre bout a bout le listing des stocks et en face mettre les qté expédiées !
aitoz
Voici ma requete : J'aimerai qu'il n'y ai plus le lien avec la sous requete8 ! Et comme ca, j'aurai une seule et meme requete, d'un seul tenant !
SELECT GPEVSTOC.ES_CART, GPARTICL.AR_DES1, GPEVSTOC.ES_LOCA, GPEVSTOC.ES_NLOT, GPEVSTOC.ES_QSTO, GPARTICL.AR_PMPO, [ES_QSTO]*[AR_PMPO] AS VALO, GPEVSTOC.ES_CMOU, GPEVSTOC.ES_DATE, IIf([ES_LOCA]<="A01A01","SECTEUR SOUS-TRAITANCE", IIf([ES_LOCA]<="B01AF4","SECTEUR FERROVIAIRE", IIf([ES_LOCA]<="B01AL4","SECTEUR AUTOMOBILE", IIf([ES_LOCA]<="B01AU4","SECTEUR AVIATION", IIf([ES_LOCA]<="B01BA4","SECTEUR MORT FERRO", IIf([ES_LOCA]<="B01BJ4","SECTEUR MORT NEGOCE", IIf([ES_LOCA]<="ZBOF","SECTEUR NEGOCE", "ERREUR"))))))) AS POLE, Requête8.SommeDeEX_NBRE, Requête8.DernierDeEX_DMOU, [SommeDeEX_NBRE]/Fix(((#4/30/2005#-#1/1/2002#)/30)) AS [QTE EXP MOY], Fix(((#4/30/2005#-#1/1/2002#)/30)) AS [NB MOIS], [ES_QSTO]/[QTE EXP MOY] AS ROTATION, IIf([rotation] Is Null,"STOCK MORT", IIf([rotation]<=3,"Stocks à 3 mois", IIf([rotation]<=6,"Stocks à 6 mois", IIf([rotation]<,"Stocks à 12 mois", IIf([rotation]<$,"Stocks à 24 mois", IIf([rotation]<6,"Stocks à 36 mois", IIf([rotation]<H,"Stocks à 48 mois", IIf([rotation]<`,"Stocks à 60 mois", IIf([rotation]<0,"Stocks à 120 mois", IIf([rotation]>120,"Stocks > 120 mois")))))))))) AS ETAT FROM (GPEVSTOC LEFT JOIN GPARTICL ON GPEVSTOC.ES_CART = GPARTICL.AR_CODE) LEFT JOIN Requête8 ON GPEVSTOC.ES_CART = Requête8.EX_ARTI WHERE (((GPEVSTOC.ES_CART) Between "$00000000000" And "£ZZZZZZZZZZZZ") AND ((GPEVSTOC.ES_LOCA) Between "00000000" And "ZBOF") AND ((GPEVSTOC.ES_CMOU)="FIN"));
Et ca, ca marche super bien ! Mais comment tout faire en une seule requete ????
Merci de votre aide !
Voici ma requete :
J'aimerai qu'il n'y ai plus le lien avec la sous requete8 !
Et comme ca, j'aurai une seule et meme requete, d'un seul tenant !
SELECT GPEVSTOC.ES_CART, GPARTICL.AR_DES1, GPEVSTOC.ES_LOCA,
GPEVSTOC.ES_NLOT, GPEVSTOC.ES_QSTO, GPARTICL.AR_PMPO, [ES_QSTO]*[AR_PMPO] AS
VALO, GPEVSTOC.ES_CMOU, GPEVSTOC.ES_DATE,
IIf([ES_LOCA]<="A01A01","SECTEUR SOUS-TRAITANCE",
IIf([ES_LOCA]<="B01AF4","SECTEUR FERROVIAIRE",
IIf([ES_LOCA]<="B01AL4","SECTEUR AUTOMOBILE",
IIf([ES_LOCA]<="B01AU4","SECTEUR AVIATION",
IIf([ES_LOCA]<="B01BA4","SECTEUR MORT FERRO",
IIf([ES_LOCA]<="B01BJ4","SECTEUR MORT NEGOCE",
IIf([ES_LOCA]<="ZBOF","SECTEUR NEGOCE",
"ERREUR"))))))) AS POLE,
Requête8.SommeDeEX_NBRE, Requête8.DernierDeEX_DMOU,
[SommeDeEX_NBRE]/Fix(((#4/30/2005#-#1/1/2002#)/30)) AS [QTE EXP MOY],
Fix(((#4/30/2005#-#1/1/2002#)/30)) AS [NB MOIS],
[ES_QSTO]/[QTE EXP MOY] AS ROTATION,
IIf([rotation] Is Null,"STOCK MORT",
IIf([rotation]<=3,"Stocks à 3 mois",
IIf([rotation]<=6,"Stocks à 6 mois",
IIf([rotation]<,"Stocks à 12 mois",
IIf([rotation]<$,"Stocks à 24 mois",
IIf([rotation]<6,"Stocks à 36 mois",
IIf([rotation]<H,"Stocks à 48 mois",
IIf([rotation]<`,"Stocks à 60 mois",
IIf([rotation]<0,"Stocks à 120 mois",
IIf([rotation]>120,"Stocks > 120 mois")))))))))) AS ETAT
FROM (GPEVSTOC LEFT JOIN GPARTICL ON GPEVSTOC.ES_CART = GPARTICL.AR_CODE)
LEFT JOIN Requête8 ON GPEVSTOC.ES_CART = Requête8.EX_ARTI
WHERE (((GPEVSTOC.ES_CART) Between "$00000000000" And "£ZZZZZZZZZZZZ") AND
((GPEVSTOC.ES_LOCA) Between "00000000" And "ZBOF") AND
((GPEVSTOC.ES_CMOU)="FIN"));
Et ca, ca marche super bien !
Mais comment tout faire en une seule requete ????
Voici ma requete : J'aimerai qu'il n'y ai plus le lien avec la sous requete8 ! Et comme ca, j'aurai une seule et meme requete, d'un seul tenant !
SELECT GPEVSTOC.ES_CART, GPARTICL.AR_DES1, GPEVSTOC.ES_LOCA, GPEVSTOC.ES_NLOT, GPEVSTOC.ES_QSTO, GPARTICL.AR_PMPO, [ES_QSTO]*[AR_PMPO] AS VALO, GPEVSTOC.ES_CMOU, GPEVSTOC.ES_DATE, IIf([ES_LOCA]<="A01A01","SECTEUR SOUS-TRAITANCE", IIf([ES_LOCA]<="B01AF4","SECTEUR FERROVIAIRE", IIf([ES_LOCA]<="B01AL4","SECTEUR AUTOMOBILE", IIf([ES_LOCA]<="B01AU4","SECTEUR AVIATION", IIf([ES_LOCA]<="B01BA4","SECTEUR MORT FERRO", IIf([ES_LOCA]<="B01BJ4","SECTEUR MORT NEGOCE", IIf([ES_LOCA]<="ZBOF","SECTEUR NEGOCE", "ERREUR"))))))) AS POLE, Requête8.SommeDeEX_NBRE, Requête8.DernierDeEX_DMOU, [SommeDeEX_NBRE]/Fix(((#4/30/2005#-#1/1/2002#)/30)) AS [QTE EXP MOY], Fix(((#4/30/2005#-#1/1/2002#)/30)) AS [NB MOIS], [ES_QSTO]/[QTE EXP MOY] AS ROTATION, IIf([rotation] Is Null,"STOCK MORT", IIf([rotation]<=3,"Stocks à 3 mois", IIf([rotation]<=6,"Stocks à 6 mois", IIf([rotation]<,"Stocks à 12 mois", IIf([rotation]<$,"Stocks à 24 mois", IIf([rotation]<6,"Stocks à 36 mois", IIf([rotation]<H,"Stocks à 48 mois", IIf([rotation]<`,"Stocks à 60 mois", IIf([rotation]<0,"Stocks à 120 mois", IIf([rotation]>120,"Stocks > 120 mois")))))))))) AS ETAT FROM (GPEVSTOC LEFT JOIN GPARTICL ON GPEVSTOC.ES_CART = GPARTICL.AR_CODE) LEFT JOIN Requête8 ON GPEVSTOC.ES_CART = Requête8.EX_ARTI WHERE (((GPEVSTOC.ES_CART) Between "$00000000000" And "£ZZZZZZZZZZZZ") AND ((GPEVSTOC.ES_LOCA) Between "00000000" And "ZBOF") AND ((GPEVSTOC.ES_CMOU)="FIN"));
Et ca, ca marche super bien ! Mais comment tout faire en une seule requete ????
Merci de votre aide !
Patrice
Le plus direct serait de remplacer Requêtes 8 par une sous-requête (y copier le code SQL) : FROM (SELECT *...) si tant est que Access le permette...
Pour Access, utiliser peut-être un groupe plus adapté (celui ci est consacré à SQL Server). Performances égales par ailleurs, le fait de diviser en étapes peut éventuellement être plus clair. Je crains que la requête finisse par être unique mais difficile à modifier.
A brûle pourpoint j'aurais vu quelque chose comme une somme avec les entrées en + et les sorties en - (éventuellement avec une requête UNION ???)
Bonne continuation.
Patrice
--
"aitoz" a écrit dans le message de news:
Voici ma requete : J'aimerai qu'il n'y ai plus le lien avec la sous requete8 ! Et comme ca, j'aurai une seule et meme requete, d'un seul tenant !
VALO, GPEVSTOC.ES_CMOU, GPEVSTOC.ES_DATE, IIf([ES_LOCA]<="A01A01","SECTEUR SOUS-TRAITANCE", IIf([ES_LOCA]<="B01AF4","SECTEUR FERROVIAIRE", IIf([ES_LOCA]<="B01AL4","SECTEUR AUTOMOBILE", IIf([ES_LOCA]<="B01AU4","SECTEUR AVIATION", IIf([ES_LOCA]<="B01BA4","SECTEUR MORT FERRO", IIf([ES_LOCA]<="B01BJ4","SECTEUR MORT NEGOCE", IIf([ES_LOCA]<="ZBOF","SECTEUR NEGOCE", "ERREUR"))))))) AS POLE, Requête8.SommeDeEX_NBRE, Requête8.DernierDeEX_DMOU, [SommeDeEX_NBRE]/Fix(((#4/30/2005#-#1/1/2002#)/30)) AS [QTE EXP MOY], Fix(((#4/30/2005#-#1/1/2002#)/30)) AS [NB MOIS], [ES_QSTO]/[QTE EXP MOY] AS ROTATION, IIf([rotation] Is Null,"STOCK MORT", IIf([rotation]<=3,"Stocks à 3 mois", IIf([rotation]<=6,"Stocks à 6 mois", IIf([rotation]<,"Stocks à 12 mois", IIf([rotation]<$,"Stocks à 24 mois", IIf([rotation]<6,"Stocks à 36 mois", IIf([rotation]<H,"Stocks à 48 mois", IIf([rotation]<`,"Stocks à 60 mois", IIf([rotation]<0,"Stocks à 120 mois", IIf([rotation]>120,"Stocks > 120 mois")))))))))) AS ETAT FROM (GPEVSTOC LEFT JOIN GPARTICL ON GPEVSTOC.ES_CART = GPARTICL.AR_CODE) LEFT JOIN Requête8 ON GPEVSTOC.ES_CART = Requête8.EX_ARTI WHERE (((GPEVSTOC.ES_CART) Between "$00000000000" And "£ZZZZZZZZZZZZ") AND ((GPEVSTOC.ES_LOCA) Between "00000000" And "ZBOF") AND ((GPEVSTOC.ES_CMOU)="FIN"));
Et ca, ca marche super bien ! Mais comment tout faire en une seule requete ????
Merci de votre aide !
Le plus direct serait de remplacer Requêtes 8 par une sous-requête (y copier
le code SQL) : FROM (SELECT *...) si tant est que Access le permette...
Pour Access, utiliser peut-être un groupe plus adapté (celui ci est consacré
à SQL Server).
Performances égales par ailleurs, le fait de diviser en étapes peut
éventuellement être plus clair. Je crains que la requête finisse par être
unique mais difficile à modifier.
A brûle pourpoint j'aurais vu quelque chose comme une somme avec les entrées
en + et les sorties en - (éventuellement avec une requête UNION ???)
Bonne continuation.
Patrice
--
"aitoz" <laurent9@hotmail.com> a écrit dans le message de
news:ud456d8TFHA.2940@TK2MSFTNGP10.phx.gbl...
Voici ma requete :
J'aimerai qu'il n'y ai plus le lien avec la sous requete8 !
Et comme ca, j'aurai une seule et meme requete, d'un seul tenant !
VALO, GPEVSTOC.ES_CMOU, GPEVSTOC.ES_DATE,
IIf([ES_LOCA]<="A01A01","SECTEUR SOUS-TRAITANCE",
IIf([ES_LOCA]<="B01AF4","SECTEUR FERROVIAIRE",
IIf([ES_LOCA]<="B01AL4","SECTEUR AUTOMOBILE",
IIf([ES_LOCA]<="B01AU4","SECTEUR AVIATION",
IIf([ES_LOCA]<="B01BA4","SECTEUR MORT FERRO",
IIf([ES_LOCA]<="B01BJ4","SECTEUR MORT NEGOCE",
IIf([ES_LOCA]<="ZBOF","SECTEUR NEGOCE",
"ERREUR"))))))) AS POLE,
Requête8.SommeDeEX_NBRE, Requête8.DernierDeEX_DMOU,
[SommeDeEX_NBRE]/Fix(((#4/30/2005#-#1/1/2002#)/30)) AS [QTE EXP MOY],
Fix(((#4/30/2005#-#1/1/2002#)/30)) AS [NB MOIS],
[ES_QSTO]/[QTE EXP MOY] AS ROTATION,
IIf([rotation] Is Null,"STOCK MORT",
IIf([rotation]<=3,"Stocks à 3 mois",
IIf([rotation]<=6,"Stocks à 6 mois",
IIf([rotation]<,"Stocks à 12 mois",
IIf([rotation]<$,"Stocks à 24 mois",
IIf([rotation]<6,"Stocks à 36 mois",
IIf([rotation]<H,"Stocks à 48 mois",
IIf([rotation]<`,"Stocks à 60 mois",
IIf([rotation]<0,"Stocks à 120 mois",
IIf([rotation]>120,"Stocks > 120 mois")))))))))) AS ETAT
FROM (GPEVSTOC LEFT JOIN GPARTICL ON GPEVSTOC.ES_CART = GPARTICL.AR_CODE)
LEFT JOIN Requête8 ON GPEVSTOC.ES_CART = Requête8.EX_ARTI
WHERE (((GPEVSTOC.ES_CART) Between "$00000000000" And "£ZZZZZZZZZZZZ") AND
((GPEVSTOC.ES_LOCA) Between "00000000" And "ZBOF") AND
((GPEVSTOC.ES_CMOU)="FIN"));
Et ca, ca marche super bien !
Mais comment tout faire en une seule requete ????
Le plus direct serait de remplacer Requêtes 8 par une sous-requête (y copier le code SQL) : FROM (SELECT *...) si tant est que Access le permette...
Pour Access, utiliser peut-être un groupe plus adapté (celui ci est consacré à SQL Server). Performances égales par ailleurs, le fait de diviser en étapes peut éventuellement être plus clair. Je crains que la requête finisse par être unique mais difficile à modifier.
A brûle pourpoint j'aurais vu quelque chose comme une somme avec les entrées en + et les sorties en - (éventuellement avec une requête UNION ???)
Bonne continuation.
Patrice
--
"aitoz" a écrit dans le message de news:
Voici ma requete : J'aimerai qu'il n'y ai plus le lien avec la sous requete8 ! Et comme ca, j'aurai une seule et meme requete, d'un seul tenant !
VALO, GPEVSTOC.ES_CMOU, GPEVSTOC.ES_DATE, IIf([ES_LOCA]<="A01A01","SECTEUR SOUS-TRAITANCE", IIf([ES_LOCA]<="B01AF4","SECTEUR FERROVIAIRE", IIf([ES_LOCA]<="B01AL4","SECTEUR AUTOMOBILE", IIf([ES_LOCA]<="B01AU4","SECTEUR AVIATION", IIf([ES_LOCA]<="B01BA4","SECTEUR MORT FERRO", IIf([ES_LOCA]<="B01BJ4","SECTEUR MORT NEGOCE", IIf([ES_LOCA]<="ZBOF","SECTEUR NEGOCE", "ERREUR"))))))) AS POLE, Requête8.SommeDeEX_NBRE, Requête8.DernierDeEX_DMOU, [SommeDeEX_NBRE]/Fix(((#4/30/2005#-#1/1/2002#)/30)) AS [QTE EXP MOY], Fix(((#4/30/2005#-#1/1/2002#)/30)) AS [NB MOIS], [ES_QSTO]/[QTE EXP MOY] AS ROTATION, IIf([rotation] Is Null,"STOCK MORT", IIf([rotation]<=3,"Stocks à 3 mois", IIf([rotation]<=6,"Stocks à 6 mois", IIf([rotation]<,"Stocks à 12 mois", IIf([rotation]<$,"Stocks à 24 mois", IIf([rotation]<6,"Stocks à 36 mois", IIf([rotation]<H,"Stocks à 48 mois", IIf([rotation]<`,"Stocks à 60 mois", IIf([rotation]<0,"Stocks à 120 mois", IIf([rotation]>120,"Stocks > 120 mois")))))))))) AS ETAT FROM (GPEVSTOC LEFT JOIN GPARTICL ON GPEVSTOC.ES_CART = GPARTICL.AR_CODE) LEFT JOIN Requête8 ON GPEVSTOC.ES_CART = Requête8.EX_ARTI WHERE (((GPEVSTOC.ES_CART) Between "$00000000000" And "£ZZZZZZZZZZZZ") AND ((GPEVSTOC.ES_LOCA) Between "00000000" And "ZBOF") AND ((GPEVSTOC.ES_CMOU)="FIN"));
Et ca, ca marche super bien ! Mais comment tout faire en une seule requete ????
Merci de votre aide !
aitoz
Je viens ici parce je ne connais pas de forum SQL pure ! Je ne suis meme pas sur que ca existe. Mon probleme est un probleme de SQL. Si j'avais SQL Server j'irai vers les procédures stockées, mais ce n'est pas le cas !
Mais merci, je vais essayer de nouveau d'integrer la requete SQL à la place de requete8. UNION, je connais et je n'y avais pas pensé. Je vais regarder.
Merci pour votre aide
Je viens ici parce je ne connais pas de forum SQL pure !
Je ne suis meme pas sur que ca existe. Mon probleme est un probleme de SQL.
Si j'avais SQL Server j'irai vers les procédures stockées, mais ce n'est pas
le cas !
Mais merci, je vais essayer de nouveau d'integrer la requete SQL à la place
de requete8.
UNION, je connais et je n'y avais pas pensé. Je vais regarder.
Je viens ici parce je ne connais pas de forum SQL pure ! Je ne suis meme pas sur que ca existe. Mon probleme est un probleme de SQL. Si j'avais SQL Server j'irai vers les procédures stockées, mais ce n'est pas le cas !
Mais merci, je vais essayer de nouveau d'integrer la requete SQL à la place de requete8. UNION, je connais et je n'y avais pas pensé. Je vais regarder.
Merci pour votre aide
aitoz
Non, en fait, UNION affiche a la suite deux requetes ! Ca ne conviens pas ! Il faut que je fasse un select imbriqué a un niveau encore supplémentaire ! Je touche au but. Dès que j'ai trouvé je mets la réponse. Si quelqu'un a une autre idée ? ou meme la réponse je serais ravi.
Merci et bonne soirée
Non, en fait, UNION affiche a la suite deux requetes !
Ca ne conviens pas !
Il faut que je fasse un select imbriqué a un niveau encore supplémentaire !
Je touche au but. Dès que j'ai trouvé je mets la réponse.
Si quelqu'un a une autre idée ? ou meme la réponse je serais ravi.
Non, en fait, UNION affiche a la suite deux requetes ! Ca ne conviens pas ! Il faut que je fasse un select imbriqué a un niveau encore supplémentaire ! Je touche au but. Dès que j'ai trouvé je mets la réponse. Si quelqu'un a une autre idée ? ou meme la réponse je serais ravi.
Merci et bonne soirée
Michel PRIORI
Je n'ai rien compris, mais il me semble qu'à peu de frais de conception tu peux utiliser les vues (voir create vue dans SQL) ou des requêtes (fichier/enregistrer dans access)
Si ton problème est une analyse multidimentionnelle le principe OLAP devrait t'interresser (voir analyse de tableau croisé dans Acccess. Plus pauvre)
"aitoz" a écrit :
Bonjour,
Je voudrais calculer le taux de rotation de mes stocks exprimé en nombres de mois !
Actuellement, j'ai développer en ACCESS un petit programme qui successivement, va coller dans une table temporaire la somme des stocks par localisation et par famille d'article. Ensuite en parallèle, je fais la somme des articles expédiés sur une période exprimé en mois. Et pour finir je regroupe le tout dans une ultime requete qui me donne le niveau de stock et la qte expédiée et avec ca je peux calculer mon niveau de stock en mois !
J'ai pour ce faire 5 étapes (soit 5 requetes) ! 2 pour avoir les infos sur les stocks 2 pour avoir les infos sur les expéditions 1 la finale pour regrouper le tout !
Comment je pourrais faire pour écrire tout cela en une pièce ? Est-ce possible ?
Merci
Laurent
Je n'ai rien compris, mais il me semble qu'à peu de frais de conception tu
peux utiliser les vues (voir create vue dans SQL) ou des requêtes
(fichier/enregistrer dans access)
Si ton problème est une analyse multidimentionnelle le principe OLAP devrait
t'interresser (voir analyse de tableau croisé dans Acccess. Plus pauvre)
"aitoz" a écrit :
Bonjour,
Je voudrais calculer le taux de rotation de mes stocks exprimé en nombres de
mois !
Actuellement, j'ai développer en ACCESS un petit programme qui
successivement,
va coller dans une table temporaire la somme des stocks par localisation et
par famille d'article.
Ensuite en parallèle, je fais la somme des articles expédiés sur une période
exprimé en mois.
Et pour finir je regroupe le tout dans une ultime requete qui me donne le
niveau de stock et la qte expédiée et avec ca je peux calculer mon niveau de
stock en mois !
J'ai pour ce faire 5 étapes (soit 5 requetes) !
2 pour avoir les infos sur les stocks
2 pour avoir les infos sur les expéditions
1 la finale pour regrouper le tout !
Comment je pourrais faire pour écrire tout cela en une pièce ?
Est-ce possible ?
Je n'ai rien compris, mais il me semble qu'à peu de frais de conception tu peux utiliser les vues (voir create vue dans SQL) ou des requêtes (fichier/enregistrer dans access)
Si ton problème est une analyse multidimentionnelle le principe OLAP devrait t'interresser (voir analyse de tableau croisé dans Acccess. Plus pauvre)
"aitoz" a écrit :
Bonjour,
Je voudrais calculer le taux de rotation de mes stocks exprimé en nombres de mois !
Actuellement, j'ai développer en ACCESS un petit programme qui successivement, va coller dans une table temporaire la somme des stocks par localisation et par famille d'article. Ensuite en parallèle, je fais la somme des articles expédiés sur une période exprimé en mois. Et pour finir je regroupe le tout dans une ultime requete qui me donne le niveau de stock et la qte expédiée et avec ca je peux calculer mon niveau de stock en mois !
J'ai pour ce faire 5 étapes (soit 5 requetes) ! 2 pour avoir les infos sur les stocks 2 pour avoir les infos sur les expéditions 1 la finale pour regrouper le tout !
Comment je pourrais faire pour écrire tout cela en une pièce ? Est-ce possible ?
Merci
Laurent
aitoz
merci. Pour simplifer les choses ! Voici mo probleme simplifier :
J'ai une table STOCK et une table EXPEDITION Avec chacune deux champs : Code_article et Qté
Ma requete SQL sera : SELECT stock.Code_article, stock.Qté, expedition.qté FROM stock LEFT JOIN expedition ON stock.Code_article=expedition.Code_article;
Le probleme est que la je n'ai pas la somme des quantités livrées sur une période ! le champ expédition.qté doit être le fruit d'une requete imbriquée me donnant la somme des quantités expédiées sur une période !
merci.
Pour simplifer les choses ! Voici mo probleme simplifier :
J'ai une table STOCK et une table EXPEDITION
Avec chacune deux champs : Code_article et Qté
Ma requete SQL sera :
SELECT stock.Code_article, stock.Qté, expedition.qté
FROM stock LEFT JOIN expedition ON
stock.Code_article=expedition.Code_article;
Le probleme est que la je n'ai pas la somme des quantités livrées sur une
période !
le champ expédition.qté doit être le fruit d'une requete imbriquée me
donnant la somme des quantités expédiées sur une période !
merci. Pour simplifer les choses ! Voici mo probleme simplifier :
J'ai une table STOCK et une table EXPEDITION Avec chacune deux champs : Code_article et Qté
Ma requete SQL sera : SELECT stock.Code_article, stock.Qté, expedition.qté FROM stock LEFT JOIN expedition ON stock.Code_article=expedition.Code_article;
Le probleme est que la je n'ai pas la somme des quantités livrées sur une période ! le champ expédition.qté doit être le fruit d'une requete imbriquée me donnant la somme des quantités expédiées sur une période !
Patrice
Le UNION te donne UN résultat sur lequel tu dois pouvoir ensuite opérer une somme et un group by ? Après je ne ne connais pas le détail de tes données mais globalement je pensais à quelque chose comme :
SELECT Produit,SUM(Quantité) FROM ( SELECT Produit,Quantité FROM Entrée UNION ALL SELECT Produit,-Quantité FROM Sortie ) AS Liste GROUP BY Produit
Bon courage
Patrice
--
"aitoz" a écrit dans le message de news:uwCosW$
Non, en fait, UNION affiche a la suite deux requetes ! Ca ne conviens pas ! Il faut que je fasse un select imbriqué a un niveau encore supplémentaire
!
Je touche au but. Dès que j'ai trouvé je mets la réponse. Si quelqu'un a une autre idée ? ou meme la réponse je serais ravi.
Merci et bonne soirée
Le UNION te donne UN résultat sur lequel tu dois pouvoir ensuite opérer une
somme et un group by ? Après je ne ne connais pas le détail de tes données
mais globalement je pensais à quelque chose comme :
SELECT Produit,SUM(Quantité) FROM
(
SELECT Produit,Quantité FROM Entrée
UNION ALL SELECT Produit,-Quantité FROM Sortie
) AS Liste
GROUP BY Produit
Bon courage
Patrice
--
"aitoz" <laurent9@hotmail.com> a écrit dans le message de
news:uwCosW$TFHA.3944@tk2msftngp13.phx.gbl...
Non, en fait, UNION affiche a la suite deux requetes !
Ca ne conviens pas !
Il faut que je fasse un select imbriqué a un niveau encore supplémentaire
!
Je touche au but. Dès que j'ai trouvé je mets la réponse.
Si quelqu'un a une autre idée ? ou meme la réponse je serais ravi.
Le UNION te donne UN résultat sur lequel tu dois pouvoir ensuite opérer une somme et un group by ? Après je ne ne connais pas le détail de tes données mais globalement je pensais à quelque chose comme :
SELECT Produit,SUM(Quantité) FROM ( SELECT Produit,Quantité FROM Entrée UNION ALL SELECT Produit,-Quantité FROM Sortie ) AS Liste GROUP BY Produit
Bon courage
Patrice
--
"aitoz" a écrit dans le message de news:uwCosW$
Non, en fait, UNION affiche a la suite deux requetes ! Ca ne conviens pas ! Il faut que je fasse un select imbriqué a un niveau encore supplémentaire
!
Je touche au but. Dès que j'ai trouvé je mets la réponse. Si quelqu'un a une autre idée ? ou meme la réponse je serais ravi.
Merci et bonne soirée
aitoz
Mince je touche au but ! Il faut vraiment que je trouve. Comment faire par exemple pour afficher en bout de ligne la somme des qtés expédiées ???
Je suis sur que je peux trouver mais je n'y arrive pas. Comment faire ? Parce que une requete imbriquée n'est pas vraiement adéquate !
Bon, si quelqu'un a une idée ?? je suis preneur avec plaisir
aitoz
Voila, c'est exactement ca l'exemple ! Comment faire en sorte que le code article, la désignation et le prix soit une liste non regroupé et qu'au bout de chaque ligne j'affiche la somme des quantités expédiées sur l'article ?
Voila, c'est exactement ca l'exemple !
Comment faire en sorte que le code article, la désignation et le prix soit
une liste non regroupé et qu'au bout de chaque ligne j'affiche la somme des
quantités expédiées sur l'article ?
Voila, c'est exactement ca l'exemple ! Comment faire en sorte que le code article, la désignation et le prix soit une liste non regroupé et qu'au bout de chaque ligne j'affiche la somme des quantités expédiées sur l'article ?