Regroupement par date dans une requete access

[Résolu]
Signaler
Messages postés
27
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2008
-
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
-
Bonjour,
Je me lance......

J'ai une base de donnée sous unix dans laquelle je recupere le c.a journalier de differentes boutique par le biais des lignes de vente.
afin de faire des stats de c.a., je recupere mon fichier unix dans access sous forme de table.
puis j'ai cree une requete dans laquelle j'ai regroupé les lignes de vente par jour et par magasin et surprise, cela fonctionne!....
Malheureusement, je suis bloqué par une histoire de date. je m'explique....
je voudrais pouvoir regrouper mes ventes :1er par jour (ca c'est ok!)
2eme par mois
3eme par année
afin de pouvoir suivre l' évolution de mes boutiques soit: mag10, mag11, mag12 etc....

exemple de resultat de ma requete
Date Fact * Total * mag10 * mag 11 *

samedi 1 septembre 2001 * 7 760,43 ? * 5 677,98 ? * 2 082,45 ?
lundi 3 septembre 2001 * 1 939,17 ? * 1 305,75 ? * 633,42 ?
mardi 4 septembre 2001 * 3 262,40 ? * 1 428,46 ? *1 833,94 ?
mercredi 5 septembre 2001 * 4 825,49 ? *3 280,69 ? * 1 544,80?

Et la, je suis totalement bloqué, merci d'éclairer ma lanterne de débutant......

28 réponses

Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Maintenant tu sais ce qu'il te reste à faire:
SELECT Year([Statsemainemag]![Date Fact]) AS ANNEE, Month([Statsemainemag]![Date Fact]) AS MOIS,CCur(Sum(IIf([Statsemainemag]![Mag]=10,[Statsemainemag]![Qté]*[Statsemainemag]![PU TTC],0))) AS Mag10
FROM Statsemainemag
GROUP BY Year([Statsemainemag]![Date Fact]), Month([Statsemainemag]![Date Fact]),;
pour avoir l' année et le mois

et
SELECT Year([Statsemainemag]![Date Fact]) AS ANNEE,<strike></strike>CCur(Sum(IIf([Statsemainemag]![Mag]=10,[Statsemainemag]![Qté]*[Statsemainemag]![PU TTC],0))) AS Mag10
FROM Statsemainemag
GROUP BY Year([Statsemainemag]![Date Fact]),
pour n' avoir que l' année.

<hr />
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Remerciements accèptées
Ravi de t' avoir croisé.
Bonne continuation.
<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Salut,
Proposition:
Il faudra procèder en deux temps.
Schematiquement
Requete1- SELECT Day(Date_Fact) As JOUR,  Month(Date_Fact) As JMOIS,  Year(Date_Fact) As ANNEE,  IIf(Magasin=Magasin10,Recette,0) AS Mag10,
   IIf(Magasin=Magasin11,Recette,0) AS Mag11,   IIf(Magasin=Magasin12,Recette,0) AS Mag12
From TA_TABLE


Requete2- Tu fais une requete regroupement
SELECT * FROM Requete1 GROUPE BY JOUR, MOIS, ANNEE, SUM(Mag10),SUM(Mag11),SUM(Mag12)





<hr />

... Il y' en a même qui m' ont vu voler.
<hr />
Messages postés
27
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2008

Merci
Mais, tu a affaire a un gros boulet débutant......

Donc si tu releve le défit il va te falloir beaucoup de patience,
es tu ok pour une nouvelle aventure?
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
c' est ok !
Alors on va simplifier tout ça et faire plus court.
En une seule requete donc
"SELECT Day(Date_Fact) As JOUR,  " & _
"Month(Date_Fact) As MOIS,  " & _
"Year(Date_Fact) As ANNEE,  " & _
"Sum(IIf(Magasin=Magasin10,Recette,0)) AS Mag10, " & _
"Sum( IIf(Magasin=Magasin11,Recette,0) )AS Mag11 ," & _
"Sum( IIf(Magasin=Magasin12,Recette,0)) AS Mag12 " & _
"FROM TA_TABLE GROUPE BY JOUR, MOIS, ANNEE;"




Résultat
Jour   Mois    Annee    Mag10       Mag11          Mag12  ...
 3        9     2001     1 939,17 ?   1 305,75 ?    633,42 ?


Tu pourras avoir autant de colonnes Mag que tu veux à condition de les fixer d' avance
Il suffit de reproduire le même schema.
Pour la colonne total , tu as le chois entre faire la somme des magasins après ou directement dans l' expression de la requete.


Maintenent pour avoir un regroupement sur le Mois:
"SELECT Month(Date_Fact) As MOIS,  " & _
"Year(Date_Fact) As ANNEE,  " & _
"Sum(IIf(Magasin=Magasin10,Recette,0)) AS Mag10, " & _
"Sum( IIf(Magasin=Magasin11,Recette,0) )AS Mag11 ," & _
"Sum( IIf(Magasin=Magasin12,Recette,0)) AS Mag12 " & _
"FROM TA_TABLE GROUPE BY  MOIS, ANNEE;"


Résultat
 Mois    Annee    Mag10       Mag11          Mag12  ...
    9      2001     1 939,17 ?   1 305,75 ?    633,42 ?


Et pour avoir un regroupement sur l' année:
"SELECT Year(Date_Fact) As ANNEE,  " & _
"Sum(IIf(Magasin=Magasin10,Recette,0)) AS Mag10, " & _
"Sum( IIf(Magasin=Magasin11,Recette,0) )AS Mag11 ," & _
"Sum( IIf(Magasin=Magasin12,Recette,0)) AS Mag12 " & _
"FROM TA_TABLE GROUPE BY  MOIS, ANNEE;"


Résultat
    Annee    Mag10       Mag11          Mag12  ...
      2001    1 939,17 ?   1 305,75 ?    633,42 ? 

 Et je suis toujours partant pour plus amples précisions.               
<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Pardon !
Pour la dernière c' est  GROUPE BY  ANNEE;"

<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
Messages postés
27
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2008

ha voici un homme de défi comme je les aime.....
Bon alors je fais une tentative demain car la je suis HS
merci et a demain...
Bonne nuit
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
A demain alors.
Et pardon pour le retard de tout à l' heure.

Bonne nuit à toi aussi.
<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Re,
Lifting réussi.
Mes listviews ont retrouvé leur vigueur de jeunesse.
Elles se reposent pour l' instant.
Mais elles pourront sortir dès demains.


Bonne nuit.

                
<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Oups!
je me suis trompé de page

<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
Messages postés
27
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2008

Bonjour,

Coucou me revoilou!....
Donc je test
Messages postés
27
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2008

quelque chose m'échape, ....
je créé une nouvelle requette en mode SQL dans laquelle j'écrit:

"SELECT Day(Date_Fact) As JOUR,  " & _
"Month(Date_Fact) As MOIS,  " & _
"Year(Date_Fact) As ANNEE,  " & _
"Sum(IIf(Magasin=Magasin10,Recette,0)) AS Mag10, " & _
"Sum( IIf(Magasin=Magasin11,Recette,0) )AS Mag11 ," & _
"Sum( IIf(Magasin=Magasin12,Recette,0)) AS Mag12 " & _
"FROM TA_TABLE GROUPE BY JOUR, MOIS, ANNEE;"

j'ai remplacé "FROM TA_TABLE GROUPE BY JOUR, MOIS, ANNEE;"
par "FROM Statsemainemag GROUPE BY JOUR, MOIS, ANNEE;" (Statsemainemag est le nom de ma table) puis j'ai enlevé les "_" de "Date_Fact" car dans ma table ce champs est nomé "Date Fact"

et lorque je test, un message me signale: Instruction SQL non valide: DELETE, INSERT,PROCEDURE,SELECT ou UPDATE attendus.

Donc 
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Bonjour,
donnes tout le code de ta procedure de test pour que
je puisse voir un peu plus clair.
N' oublies pas aussi la structure de ta table:Nom des champs
et type.

<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
Messages postés
27
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2008

comment faire si je veu ( bien évidement su tu es ok)  t'envoyer le fichier zipé pour mieux comprendre a qui tu as affaire?
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
remarques, je suis sous VB6 .
Si tu pouvais juste donner la description de ta table
Statsemainemag et comment tu fais pour exécuter ta requete,
ça serait suffisant pour essayer de résoudre le problème.
<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
Messages postés
27
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2008

ok

Mais tu n es pas sous ACCESS?
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Access 97.
En attendant corriges GROUPE BY par GROUP BY
et mets [Date Fact] si ton champ se nomme Date Fact.

PS: regardes dans ta messagerie.

<hr />
... Il y' en a même qui m' ont vu voler.
<hr />
Messages postés
27
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2008

ok

ha merci pour ton message perso!
Messages postés
27
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2008

exemple d'une requete qui fonctionne bien:

SELECT DISTINCTROW Statsemainemag.[Date Fact], Statsemainemag.Mag, Sum([Statsemainemag]![Qté]*[Statsemainemag]![PU TTC]) AS TOTAL
FROM Statsemainemag
GROUP BY Statsemainemag.[Date Fact], Statsemainemag.Mag
HAVING (((Statsemainemag.[Date Fact])=[Entrez la 1ere date a comparer] Or (Statsemainemag.[Date Fact])=[Entrez la 2éme date a comparer]));
Messages postés
27
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2008

Quel silence soudain !.....
Bon w.e.