ifrpi
Messages postés27Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention20 octobre 2008
-
7 févr. 2008 à 18:35
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 2012
-
14 févr. 2008 à 00:33
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 *
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 9 févr. 2008 à 19:37
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.
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 7 févr. 2008 à 18:56
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)
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 7 févr. 2008 à 23:39
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;"
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;"
ifrpi
Messages postés27Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention20 octobre 2008 8 févr. 2008 à 14:55
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.
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 8 févr. 2008 à 15:04
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 />
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 8 févr. 2008 à 15:42
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 />
ifrpi
Messages postés27Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention20 octobre 2008 8 févr. 2008 à 16:27
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]));