[ACCESS] probleme cumul sur requete

probleme cumul sur requete [ACCESS] - SQL/NoSQL - Programmation

Marsh Posté le 02-11-2005 à 10:44:01    

Bonjour,
 
J'ai crée une table où je liste mes commandes. J'ai crée une requête afin de compter le nombre de commandes pour chaque mois. Jusque là pas de problèmes mais je voudrais cumuler ces nombres mois par mois, en clair je voudrais savoir pour chaque mois le nombre de commandes depuis le début.
Merci :bounce:

Reply

Marsh Posté le 02-11-2005 à 10:44:01   

Reply

Marsh Posté le 02-11-2005 à 10:52:30    

Si via le code tu fait un recordSet basé sur une requete genre
  Select count(commandes) from blabla group by mois
Puis en parcourant le recordSet aves une petite boucle dans laquelle tu additionne les différents mois ca doit fonctionner
Ceci dit peut qu'il existe des solution plus simple ;)

Reply

Marsh Posté le 02-11-2005 à 11:02:40    

Bonjours il n'y a pas moyen dans ta requete de simplement compter toutes les commandes dont la date est inférieure au dernier jours du mois selectionné ?

Reply

Marsh Posté le 02-11-2005 à 11:05:08    

merci j'y avais pas pensé je vais essayer

Reply

Marsh Posté le 02-11-2005 à 11:24:24    

Avec Oracle ça se ferait comme ça par exemple :
 

Code :
  1. SELECT sub1.mois, SUM(sub2.nb_commandes)
  2. FROM (SELECT DISTINCT TO_CHAR(<ton champ date>, 'YYYYMM') AS mois
  3.       FROM taTable) sub1,
  4.      (SELECT TO_CHAR(<ton champ date>, 'YYYYMM') AS mois, COUNT(*) AS nb_commandes
  5.       FROM taTable
  6.       GROUP BY TO_CHAR(start_dat, 'YYYYMM')) sub2
  7. WHERE sub1.mois >= sub2.mois
  8. GROUP BY sub1.mois
  9. ORDER BY sub1.mois;


 
Je te laisse adapter pour Access (en particulier les fonctions sur dates).

Reply

Marsh Posté le 08-11-2005 à 10:26:21    

J'ai essayé de faire marcher l'exemple que tu m'as passé mais je n'arrive pas à le faire fonctionner. Que veut dire la commande TO_CHAR?
Disons que j'ai une table appelée TABLE1 avec comme champs: Date, N°commande, Mois(ce champs est en fait du type 01/mm/aaaa). J'ai crée une requête appelée REQUETE1 avec la fonction count afin de compter le nombre d'enregistements différents pour chaque mois.
J'ai essayé de faire différentes choses mais je n'arrive pas à spécifier dans ma formule d'aditonner les valeurs dont les dates sont inférieures à la date de l'enregistrement.
Merci,

Reply

Marsh Posté le 10-11-2005 à 15:49:09    

Ca y est j'ai trouvé un début de solution avec la fonction DSUM ou Som Dom (en français).
Par exemple avec une table appelée tbl commande composée de deux champs:date et commande. Le cumul du nombre de commande serait:
 
Cumul: CDbl(SomDom("[commande]";"tbl commande";"[date]<=" & DateUS([date])))
 
A savoir que dans la formule DATEUS est en fait un module permettant d'éviter les problèmes de conversion entre date américaine et française dans les formules.
 
Merci à tous

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed