bonjour,
Je n'arrive pas à realiser ce besoin. je demande de l'aide :
j'ai une table qui contient une liste de commandes avec les qte fab par
semaine (: num cde, num semaine qte fab de la semaine.)
Je dois arriver a un resultat suivant :avoir la liste de cdes avec la qte
fab par semaine et celle de la semaine précedente ( qui n'est pas
automatiquement celle qui est juste vant , il peux y avoir 1 a x semaine de
décallage entre elle)
donc il faut que j'arrive à une table/requete sous la forme:
num cde, num sem, qte fab de la sem, num sem juste avant, qte fab de la
semain juste avant
Il peut donc y avoir plusieurs fois le meme num de commande dans cette table.
Merci d'avance de vos conseil
carole
Votre solution fonctionne à merveille meme avec les parametres en automatique. Je vous remercie milles fois du temps passé et de votre competence sur le sujet. carole
"Michel_D" a écrit :
Petite correction sur la 2ème requête.
Voici en plus classique ma proposition (2 requêtes) :
La 1ére requête nommé "comptage"
SELECT T1.[num cde], T1.sem, T1.[qte fab], Count(T2.[num cde]) AS NbEnr FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.[num cde]=T2.[num cde]) AND (T1.sem>=T2.sem) GROUP BY T1.[num cde], T1.sem, T1.[qte fab] ORDER BY T1.[num cde], T1.sem UNION SELECT T1.[num cde], 0, 0, 0 FROM LaTable AS T1 GROUP BY T1.[num cde] ORDER BY T1.[num cde];
Et la requête finale qui fournit le résultat
SELECT T1.[num cde], T1.[sem] AS sem1, T1.[qte fab] AS qte1, T2.[sem] AS sem2, T2.[qte fab] AS qte2 FROM comptage AS T1 INNER JOIN comptage AS T2 ON (T1.NbEnr=T2.NbEnr+1) AND (T1.[num cde]=T2.[num cde]);
Votre solution fonctionne à merveille meme avec les parametres en automatique.
Je vous remercie milles fois du temps passé et de votre competence sur le
sujet.
carole
"Michel_D" a écrit :
Petite correction sur la 2ème requête.
Voici en plus classique ma proposition (2 requêtes) :
La 1ére requête nommé "comptage"
SELECT T1.[num cde], T1.sem, T1.[qte fab], Count(T2.[num cde]) AS NbEnr
FROM LaTable AS T1 INNER JOIN LaTable AS T2
ON (T1.[num cde]=T2.[num cde]) AND (T1.sem>=T2.sem)
GROUP BY T1.[num cde], T1.sem, T1.[qte fab]
ORDER BY T1.[num cde], T1.sem
UNION SELECT T1.[num cde], 0, 0, 0
FROM LaTable AS T1
GROUP BY T1.[num cde]
ORDER BY T1.[num cde];
Et la requête finale qui fournit le résultat
SELECT T1.[num cde], T1.[sem] AS sem1, T1.[qte fab] AS qte1,
T2.[sem] AS sem2, T2.[qte fab] AS qte2
FROM comptage AS T1 INNER JOIN comptage AS T2
ON (T1.NbEnr=T2.NbEnr+1) AND (T1.[num cde]=T2.[num cde]);
Votre solution fonctionne à merveille meme avec les parametres en automatique. Je vous remercie milles fois du temps passé et de votre competence sur le sujet. carole
"Michel_D" a écrit :
Petite correction sur la 2ème requête.
Voici en plus classique ma proposition (2 requêtes) :
La 1ére requête nommé "comptage"
SELECT T1.[num cde], T1.sem, T1.[qte fab], Count(T2.[num cde]) AS NbEnr FROM LaTable AS T1 INNER JOIN LaTable AS T2 ON (T1.[num cde]=T2.[num cde]) AND (T1.sem>=T2.sem) GROUP BY T1.[num cde], T1.sem, T1.[qte fab] ORDER BY T1.[num cde], T1.sem UNION SELECT T1.[num cde], 0, 0, 0 FROM LaTable AS T1 GROUP BY T1.[num cde] ORDER BY T1.[num cde];
Et la requête finale qui fournit le résultat
SELECT T1.[num cde], T1.[sem] AS sem1, T1.[qte fab] AS qte1, T2.[sem] AS sem2, T2.[qte fab] AS qte2 FROM comptage AS T1 INNER JOIN comptage AS T2 ON (T1.NbEnr=T2.NbEnr+1) AND (T1.[num cde]=T2.[num cde]);