OVH Cloud OVH Cloud

Requête regroupement

5 réponses
Avatar
PO2B
Bonjour à Tous,

J'ai effectué une requête sur les champs suivants (une partie seulement)

NomCommercial - NomClient - FamilleArticle - CodeArticle -
DateVente - MontantVente

La requête s'effectue de date à date soit "Entre telle date et telle date"

J'obtiens donc la liste de toutes les ventes effectuées dans cette période.

Mais si un client précis a passé commande plusieurs fois du même article
dans la même période, il apparait autant de fois que de commandes passées.

Je souhaite donc pouvoir regrouper par exemple par CodeArticle, avec dans la
période choisie la somme des ventes (MontantVente) pour chaque article.

Je pense donc devoir passer par une requête regroupement mais je ne
comprends pas le fonctionnement

Je clique sur le bouton opérations (?) et tous les champs se mettent en
regroupement, je mets le champs montantVente en somme mais ça ne marche
pas.......

Comment faire pour indiquer à la requête que la somme de "montantvente" doit
se faire sur "CodeArticle" uniquement.....

---------------------------------------

Question subsidiaire (mais optionnelle)

Ensuite je souhaite pouvoir le faire par FamilleArticle, existe-t-il un
moyen de paramétrer la requête pour que le choix du regroupement puisse se
faire par l'utilisateur ????


Merci d'avance pour votre aide et bonnes vacances à ceux qui vont bientôt
partir....

PO

5 réponses

Avatar
pascal
Salut

Comme élément de réponse il faut que tu saches, que
lorsque tu effectue un regroupement chaque rubrique que tu
veux afficher doivent être comprise dans ta clause
regroupement (en SQL : GROUP BY).

Regarde ta requête en SQL c'est peut-être plus causant.

A+

-----Message d'origine-----
Bonjour à Tous,

J'ai effectué une requête sur les champs suivants (une
partie seulement)


NomCommercial - NomClient - FamilleArticle -
CodeArticle -

DateVente - MontantVente

La requête s'effectue de date à date soit "Entre telle
date et telle date"


J'obtiens donc la liste de toutes les ventes effectuées
dans cette période.


Mais si un client précis a passé commande plusieurs fois
du même article

dans la même période, il apparait autant de fois que de
commandes passées.


Je souhaite donc pouvoir regrouper par exemple par
CodeArticle, avec dans la

période choisie la somme des ventes (MontantVente) pour
chaque article.


Je pense donc devoir passer par une requête regroupement
mais je ne

comprends pas le fonctionnement

Je clique sur le bouton opérations (?) et tous les champs
se mettent en

regroupement, je mets le champs montantVente en somme
mais ça ne marche

pas.......

Comment faire pour indiquer à la requête que la somme
de "montantvente" doit

se faire sur "CodeArticle" uniquement.....

---------------------------------------

Question subsidiaire (mais optionnelle)

Ensuite je souhaite pouvoir le faire par FamilleArticle,
existe-t-il un

moyen de paramétrer la requête pour que le choix du
regroupement puisse se

faire par l'utilisateur ????


Merci d'avance pour votre aide et bonnes vacances à ceux
qui vont bientôt

partir....

PO





.



Avatar
Eric
Bonjour PO2B

"PO2B" écrivait

Bonjour à Tous,

J'ai effectué une requête sur les champs suivants (une partie
seulement)

NomCommercial - NomClient - FamilleArticle - CodeArticle
- DateVente - MontantVente

La requête s'effectue de date à date soit "Entre telle date et telle
date"

J'obtiens donc la liste de toutes les ventes effectuées dans cette
période.

Mais si un client précis a passé commande plusieurs fois du même
article dans la même période, il apparait autant de fois que de
commandes passées.

Je souhaite donc pouvoir regrouper par exemple par CodeArticle, avec
dans la période choisie la somme des ventes (MontantVente) pour chaque
article.

Je pense donc devoir passer par une requête regroupement mais je ne
comprends pas le fonctionnement

Je clique sur le bouton opérations (?) et tous les champs se mettent
en regroupement, je mets le champs montantVente en somme mais ça ne
marche pas.......

Comment faire pour indiquer à la requête que la somme de
"montantvente" doit se faire sur "CodeArticle" uniquement.....


Sur le champ DateVente ou tu as mis tes critères de recherche, remplaces
Regroupement par Où.


---------------------------------------

Question subsidiaire (mais optionnelle)

Ensuite je souhaite pouvoir le faire par FamilleArticle, existe-t-il
un moyen de paramétrer la requête pour que le choix du regroupement
puisse se faire par l'utilisateur ????


Je ne pense pas en utilisation directe mais c'est faisable via du code.

Il suffirait de demander via un formulaire le type de regroupement désiré
par l'utilisateur et en fonction construire le sql correspondant puis de
créer et lancer la requête


A+
Eric

Avatar
pascal
La requete peut tres bien se faire en mode direct car il
n'y a pas de variable.

Il suffit de bien cibler le besoin.
Pour reprendre le cas :

NomCommercial - NomClient - FamilleArticle -
CodeArticle - DateVente - MontantVente
Carrefour Durant Vetement 06/01/04 12 €
Auchan Durant Vetement 06/01/04 30 €
Auchan Durant Vetement 06/01/04 30 €
Auchan Durant Legume 06/01/04 30 €
Auchan Durant Viande 06/01/04 30 €

Select NomCommercial, NomClient, FamilleArticle,
DateVente , sum(MontantVente)
From Table
Group by NomCommercial, NomClient, FamilleArticle,
DateVente

Carrefour Durant Vetement 06/01/04 12 €
Auchan Durant Vetement 06/01/04 60 €
Auchan Durant Legume 06/01/04 30 €
Auchan Durant Viande 06/01/04 30 €

Si le but est de regrouper uniquement par client et
afficher tous les "NomCommercial" alors un code est peut-
être plus adapté même si tu peut le faire en utilisant la
clause UNION.

Select NomClient, sum(MontantVente) as MontantVentetot
From Table
Group by NomClient
Durant 132 €

SELECT NomCommercial, NomClient, FamilleArticle,
NomClient, MontantVentetot ...
FROM Table1 INNER JOIN Requête ON Table1.NomClient =
Requête.NomClient

Tu obtiens la même table que la table initiale avec une
colonne montantventetot = 132 €

A+
;


-----Message d'origine-----
Bonjour PO2B

"PO2B" écrivait

Bonjour à Tous,

J'ai effectué une requête sur les champs suivants (une
partie


seulement)

NomCommercial - NomClient - FamilleArticle -
CodeArticle


- DateVente - MontantVente

La requête s'effectue de date à date soit "Entre telle
date et telle


date"

J'obtiens donc la liste de toutes les ventes effectuées
dans cette


période.

Mais si un client précis a passé commande plusieurs
fois du même


article dans la même période, il apparait autant de
fois que de


commandes passées.

Je souhaite donc pouvoir regrouper par exemple par
CodeArticle, avec


dans la période choisie la somme des ventes
(MontantVente) pour chaque


article.

Je pense donc devoir passer par une requête
regroupement mais je ne


comprends pas le fonctionnement

Je clique sur le bouton opérations (?) et tous les
champs se mettent


en regroupement, je mets le champs montantVente en
somme mais ça ne


marche pas.......

Comment faire pour indiquer à la requête que la somme de
"montantvente" doit se faire sur "CodeArticle"
uniquement.....



Sur le champ DateVente ou tu as mis tes critères de
recherche, remplaces

Regroupement par Où.


---------------------------------------

Question subsidiaire (mais optionnelle)

Ensuite je souhaite pouvoir le faire par
FamilleArticle, existe-t-il


un moyen de paramétrer la requête pour que le choix du
regroupement


puisse se faire par l'utilisateur ????


Je ne pense pas en utilisation directe mais c'est

faisable via du code.

Il suffirait de demander via un formulaire le type de
regroupement désiré

par l'utilisateur et en fonction construire le sql
correspondant puis de

créer et lancer la requête


A+
Eric

.




Avatar
Eric
Bonjour Pascal,

J'ai du mal comprendre la question (subsidiaire), car j'avais compris que
PO2B cherchait à savoir s'il était possible au lancement de sa requête
que l'utilisateur puisse choisir le champ sur lequel faire un
regroupement. Soit le CodeArticle soit la FamilleArticle. Et vu sous cet
angle, au premier abord, je n'ai pas vu comment paramétrer cette requête
puisque les champs à utiliser dans la requête ne seront pas forcément les
mêmes (dans le cas de regroupement par Famille, il ne faut pas mettre le
champs CodeArticle). D'ailleurs, dans ton exemple de Select tu n'as pas
mis le champ CodeArticle pour faire ton regroupement sur la
familleArticle.

Question subsidiaire (mais optionnelle)

Ensuite je souhaite pouvoir le faire par FamilleArticle, existe-t-il
un moyen de paramétrer la requête pour que le choix du regroupement
puisse se faire par l'utilisateur ????





Juste une petite remarque. Si tu laisses la date en regroupement comme
c'est le cas dans ton exemple, alors tu ne pourras faire la somme des
ventes que pour les articles ayant la même date de vente, (même client,
même commercial, même CodeArticle, même famille.) et non pas comme le
souhaite PO2B à savoir sur une période donnée.

A+
Eric









"pascal" écrivait news:062e01c46e3a
$04e791a0$:

La requete peut tres bien se faire en mode direct car il
n'y a pas de variable.

Il suffit de bien cibler le besoin.
Pour reprendre le cas :

NomCommercial - NomClient - FamilleArticle -
CodeArticle - DateVente - MontantVente
Carrefour Durant Vetement 06/01/04 12 €
Auchan Durant Vetement 06/01/04 30 €
Auchan Durant Vetement 06/01/04 30 €
Auchan Durant Legume 06/01/04 30 €
Auchan Durant Viande 06/01/04 30 €

Select NomCommercial, NomClient, FamilleArticle,
DateVente , sum(MontantVente)
From Table
Group by NomCommercial, NomClient, FamilleArticle,
DateVente

Carrefour Durant Vetement 06/01/04 12 €
Auchan Durant Vetement 06/01/04 60 €
Auchan Durant Legume 06/01/04 30 €
Auchan Durant Viande 06/01/04 30 €

Si le but est de regrouper uniquement par client et
afficher tous les "NomCommercial" alors un code est peut-
être plus adapté même si tu peut le faire en utilisant la
clause UNION.

Select NomClient, sum(MontantVente) as MontantVentetot
From Table
Group by NomClient
Durant 132 €

SELECT NomCommercial, NomClient, FamilleArticle,
NomClient, MontantVentetot ...
FROM Table1 INNER JOIN Requête ON Table1.NomClient =
Requête.NomClient

Tu obtiens la même table que la table initiale avec une
colonne montantventetot = 132 €

A+
;


-----Message d'origine-----
Bonjour PO2B

"PO2B" écrivait

Bonjour à Tous,

J'ai effectué une requête sur les champs suivants (une partie
seulement)

NomCommercial - NomClient - FamilleArticle - CodeArticle
- DateVente - MontantVente

La requête s'effectue de date à date soit "Entre telle date et telle
date"

J'obtiens donc la liste de toutes les ventes effectuées dans cette
période.

Mais si un client précis a passé commande plusieurs fois du même
article dans la même période, il apparait autant de fois que de
commandes passées.

Je souhaite donc pouvoir regrouper par exemple par CodeArticle, avec
dans la période choisie la somme des ventes (MontantVente) pour
chaque article.

Je pense donc devoir passer par une requête regroupement mais je ne
comprends pas le fonctionnement

Je clique sur le bouton opérations (?) et tous les champs se mettent
en regroupement, je mets le champs montantVente en somme mais ça ne
marche pas.......

Comment faire pour indiquer à la requête que la somme de
"montantvente" doit se faire sur "CodeArticle" uniquement.....


Sur le champ DateVente ou tu as mis tes critères de recherche,
remplaces Regroupement par Où.


---------------------------------------

Question subsidiaire (mais optionnelle)

Ensuite je souhaite pouvoir le faire par FamilleArticle, existe-t-il
un moyen de paramétrer la requête pour que le choix du regroupement
puisse se faire par l'utilisateur ????


Je ne pense pas en utilisation directe mais c'est faisable via du

code. Il suffirait de demander via un formulaire le type de
regroupement désiré par l'utilisateur et en fonction construire le sql
correspondant puis de créer et lancer la requête


A+
Eric

.







Avatar
PO2B
Merci pour votre aide, en bidouillant un peu je suis arrivé à mes fins

Encore Merci

PO

"PO2B" a écrit dans le message de
news:u6Bc$
Bonjour à Tous,

J'ai effectué une requête sur les champs suivants (une partie seulement)

NomCommercial - NomClient - FamilleArticle - CodeArticle -
DateVente - MontantVente

La requête s'effectue de date à date soit "Entre telle date et telle date"

J'obtiens donc la liste de toutes les ventes effectuées dans cette
période.


Mais si un client précis a passé commande plusieurs fois du même article
dans la même période, il apparait autant de fois que de commandes passées.

Je souhaite donc pouvoir regrouper par exemple par CodeArticle, avec dans
la

période choisie la somme des ventes (MontantVente) pour chaque article.

Je pense donc devoir passer par une requête regroupement mais je ne
comprends pas le fonctionnement

Je clique sur le bouton opérations (?) et tous les champs se mettent en
regroupement, je mets le champs montantVente en somme mais ça ne marche
pas.......

Comment faire pour indiquer à la requête que la somme de "montantvente"
doit

se faire sur "CodeArticle" uniquement.....

---------------------------------------

Question subsidiaire (mais optionnelle)

Ensuite je souhaite pouvoir le faire par FamilleArticle, existe-t-il un
moyen de paramétrer la requête pour que le choix du regroupement puisse se
faire par l'utilisateur ????


Merci d'avance pour votre aide et bonnes vacances à ceux qui vont bientôt
partir....

PO