OVH Cloud OVH Cloud

Analyse croisée sur période donnée

3 réponses
Avatar
PO2B
Bonjour à Tous

Dans une analyse croisée de Ventes, avec répartition mensuelle, Access
cumule les sommes sur 12 Mois quelque soit la plage donnée.

Si la requête porte sur maximum 12 mois, pas de problème mais si elle porte
sur plus de 12 mois, elle cumule dans la cellule

ex : requête de Janvier 2003 à Mars 2004, pour les mois de Janvier à Mars,
j'ai le cumul des 2 années....... ce n'est pas très fiable.

Je voudais avoir autant de colonnes que de mois selectionnées (15 dans
l'exemple ci dessus) et que l'année apparaisse également dans le titre.

Le format dans ma requête d'analyse croisée se présente de la façon
suivante: Expr1: Format([DAT_PIE];"mmm")

Je pense qu'il faut déjà agir sur le format pour faire apparaitre l'année ?

Comment puis-je obtenir ce résultat ? : Format Année Mois et autant de
colonnes que de mois ?

Merci d'avance pour vos réponses.

PO

3 réponses

Avatar
Jessy Sempere [MVP]
Bonjour

Essais un truc de ce genre :

TRANSFORM Sum([Vente]) AS TotalVente
SELECT Client
FROM TaTable
GROUP BY Client
PIVOT Year([DATE_PIE]) & "-" & Month([DATE_PIE]);

Cet exemple suppose que tu fais un regroupement par client sur
chaque ligne...

Si tu voulais juste la somme total des ventes par mois, tu pourrais faire un
regroupement pas année sur chaque ligne, dans ce cas, ça donnerait:

TRANSFORM Sum([Vente]) AS TotalVente
SELECT Year([DATE_PIE]) AS Année
FROM TaTable
GROUP BY Year([DATE_PIE])
PIVOT Month([DATE_PIE]);

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"PO2B" a écrit dans le message news:
ue0FLp$
Bonjour à Tous

Dans une analyse croisée de Ventes, avec répartition mensuelle, Access
cumule les sommes sur 12 Mois quelque soit la plage donnée.

Si la requête porte sur maximum 12 mois, pas de problème mais si elle porte
sur plus de 12 mois, elle cumule dans la cellule

ex : requête de Janvier 2003 à Mars 2004, pour les mois de Janvier à Mars,
j'ai le cumul des 2 années....... ce n'est pas très fiable.

Je voudais avoir autant de colonnes que de mois selectionnées (15 dans
l'exemple ci dessus) et que l'année apparaisse également dans le titre.

Le format dans ma requête d'analyse croisée se présente de la façon
suivante: Expr1: Format([DAT_PIE];"mmm")

Je pense qu'il faut déjà agir sur le format pour faire apparaitre l'année ?

Comment puis-je obtenir ce résultat ? : Format Année Mois et autant de
colonnes que de mois ?

Merci d'avance pour vos réponses.

PO




Avatar
PO2B
Merci Jessy,

J'ai essayé mais ça ne fonctionne pas..... mais je pense que je n'ai pas
tout compris....


"Jessy Sempere [MVP]" a écrit dans le message de
news:ccgcle$5le$
Bonjour

Essais un truc de ce genre :

TRANSFORM Sum([Vente]) AS TotalVente
SELECT Client
FROM TaTable
GROUP BY Client
PIVOT Year([DATE_PIE]) & "-" & Month([DATE_PIE]);

Cet exemple suppose que tu fais un regroupement par client sur
chaque ligne...

Si tu voulais juste la somme total des ventes par mois, tu pourrais faire
un

regroupement pas année sur chaque ligne, dans ce cas, ça donnerait:

TRANSFORM Sum([Vente]) AS TotalVente
SELECT Year([DATE_PIE]) AS Année
FROM TaTable
GROUP BY Year([DATE_PIE])
PIVOT Month([DATE_PIE]);

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"PO2B" a écrit dans le message news:
ue0FLp$
Bonjour à Tous

Dans une analyse croisée de Ventes, avec répartition mensuelle, Access
cumule les sommes sur 12 Mois quelque soit la plage donnée.

Si la requête porte sur maximum 12 mois, pas de problème mais si elle
porte


sur plus de 12 mois, elle cumule dans la cellule

ex : requête de Janvier 2003 à Mars 2004, pour les mois de Janvier à
Mars,


j'ai le cumul des 2 années....... ce n'est pas très fiable.

Je voudais avoir autant de colonnes que de mois selectionnées (15 dans
l'exemple ci dessus) et que l'année apparaisse également dans le titre.

Le format dans ma requête d'analyse croisée se présente de la façon
suivante: Expr1: Format([DAT_PIE];"mmm")

Je pense qu'il faut déjà agir sur le format pour faire apparaitre
l'année ?



Comment puis-je obtenir ce résultat ? : Format Année Mois et autant de
colonnes que de mois ?

Merci d'avance pour vos réponses.

PO








Avatar
Eric
Bonjour PO2B,

J'ai testé le code de Jessy et ca marche très bien.
Supposons que tu as une table tClient et une table tFacture dont les
dates de facture courrent sur 15 mois. Tu veux le total des factures par
client pour chacun des mois de la période.
(Si un mois n'est pas présent une année, tu risques de le perdre dans
l'affichage.)
Le sql de ta requête doit ressembler à :
TRANSFORM Sum(tfacture.MontantHT) AS SommeDeMontantHT
SELECT tClient.Societe_Client
FROM tClient INNER JOIN tfacture ON tClient.NumClient =
tfacture.NumClient
GROUP BY tClient.Societe_Client
PIVOT Year([DateFacture]) & "-" & Format(Month([DateFacture]),"00");

Le format est juste mis pour avoir les mois dans l'ordre.

La même chose dans le générateur des requêtes serait:

1ere colonne : Societe_client,Opération: Regroupement, Analyse: entête de
ligne
2e colonne: Expr1: Année([DateFacture]) & "-" & Format(Mois
([DateFacture]);"00"), Opération:Regroupement, Analyse: Entête de colonne
3e col: MontantHT, Opération:Somme, Analyse: Valeur

A+
Eric

"PO2B" écrivait
news::

Merci Jessy,

J'ai essayé mais ça ne fonctionne pas..... mais je pense que je n'ai
pas tout compris....


"Jessy Sempere [MVP]" a écrit dans le
message de news:ccgcle$5le$
Bonjour

Essais un truc de ce genre :

TRANSFORM Sum([Vente]) AS TotalVente
SELECT Client
FROM TaTable
GROUP BY Client
PIVOT Year([DATE_PIE]) & "-" & Month([DATE_PIE]);

Cet exemple suppose que tu fais un regroupement par client sur
chaque ligne...

Si tu voulais juste la somme total des ventes par mois, tu pourrais
faire
un

regroupement pas année sur chaque ligne, dans ce cas, ça donnerait:

TRANSFORM Sum([Vente]) AS TotalVente
SELECT Year([DATE_PIE]) AS Année
FROM TaTable
GROUP BY Year([DATE_PIE])
PIVOT Month([DATE_PIE]);

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"PO2B" a écrit dans le message news:
ue0FLp$
Bonjour à Tous

Dans une analyse croisée de Ventes, avec répartition mensuelle,
Access cumule les sommes sur 12 Mois quelque soit la plage donnée.

Si la requête porte sur maximum 12 mois, pas de problème mais si
elle
porte


sur plus de 12 mois, elle cumule dans la cellule

ex : requête de Janvier 2003 à Mars 2004, pour les mois de Janvier
à
Mars,


j'ai le cumul des 2 années....... ce n'est pas très fiable.

Je voudais avoir autant de colonnes que de mois selectionnées (15
dans l'exemple ci dessus) et que l'année apparaisse également dans
le titre.

Le format dans ma requête d'analyse croisée se présente de la façon
suivante: Expr1: Format([DAT_PIE];"mmm")

Je pense qu'il faut déjà agir sur le format pour faire apparaitre
l'année ?



Comment puis-je obtenir ce résultat ? : Format Année Mois et
autant de colonnes que de mois ?

Merci d'avance pour vos réponses.

PO