OVH Cloud OVH Cloud

Requête pourcentage

10 réponses
Avatar
Ayrton
Bonjour à tous ,

Je gère pour un ami une petite appli nous indiquant le nombre de produits
qu'il expédie ; je voudrais lui faire un pourcentage de produits envoyés à
Paris par rapport aux villes de province mais je m'emmêle dans ma requête ;
à vrai dire, je ne sais pas trop comment m'y prendre.

Merci de m'aiguiller car c'est un peu la panique à bord ;-))

--
@+
Ayrton
http://cerbermail.com/?FiLzjrFmWV
Click here to answer

10 réponses

Avatar
Laurent Jordi \(www.ezlogic.mc\)
Salut

Tu veux un pourcentage sur la valeur ou sur le nombre ?

Si c'est sur le nombre tu dois faire un count si c'est en valeur une somme.

Le plus simple serait de faire 2 sous requêtes, l'une pour paris et la
seconde pour les autres villes. Il te suffirait ensuite de diviser l'un par
l'autre * 100...

C'est clair ?

@+

LJ



"Ayrton" a écrit dans le message de
news:
Bonjour à tous ,

Je gère pour un ami une petite appli nous indiquant le nombre de produits
qu'il expédie ; je voudrais lui faire un pourcentage de produits envoyés à
Paris par rapport aux villes de province mais je m'emmêle dans ma requête
;

à vrai dire, je ne sais pas trop comment m'y prendre.

Merci de m'aiguiller car c'est un peu la panique à bord ;-))

--
@+
Ayrton
http://cerbermail.com/?FiLzjrFmWV
Click here to answer





Avatar
Ayrton
Bonsoir ,

En cette belle journée... Laurent Jordi (www.ezlogic.mc)...
<inf[o]@ezlogic.mc> Tenait à nous dire :
Salut

Tu veux un pourcentage sur la valeur ou sur le nombre ?

Sur le nombre !




Si c'est sur le nombre tu dois faire un count


? Tu peux m'en dire un peu plus stp ?

.

Le plus simple serait de faire 2 sous requêtes, l'une pour paris et la
seconde pour les autres villes. Il te suffirait ensuite de diviser
l'un par l'autre * 100...



Oui mais le souci c'est que je n'ai qu'un nom de champ ; mon champ s'appelle
Ville et à l'interieur il y a PAris, Bordeaux, Toulouse, nice etc........
Quelle est l'astuce qui consiste à pouvoir cette division ?

Merci

--
@+
Ayrton
http://cerbermail.com/?FiLzjrFmWV
Click here to answer

Avatar
didier
Bonsoir
Le plus simple est de faire une requête avec
tes produit
La somme global
La somme pour paris (champs ville critère paris)
la somme global - la somme pour paris (total pour les
autres ville)
Aprés tu n'a plus qu'à transformer en %

A+
didier
-----Message d'origine-----
Bonsoir ,

En cette belle journée... Laurent Jordi
(www.ezlogic.mc)...

<inf[o]@ezlogic.mc> Tenait à nous dire :
Salut

Tu veux un pourcentage sur la valeur ou sur le nombre ?

Sur le nombre !




Si c'est sur le nombre tu dois faire un count


? Tu peux m'en dire un peu plus stp ?

..

Le plus simple serait de faire 2 sous requêtes, l'une
pour paris et la


seconde pour les autres villes. Il te suffirait
ensuite de diviser


l'un par l'autre * 100...



Oui mais le souci c'est que je n'ai qu'un nom de champ ;
mon champ s'appelle

Ville et à l'interieur il y a PAris, Bordeaux, Toulouse,
nice etc........

Quelle est l'astuce qui consiste à pouvoir cette
division ?


Merci

--
@+
Ayrton
http://cerbermail.com/?FiLzjrFmWV
Click here to answer


.




Avatar
Ayrton
Bonsoir,

"didier" a écrit dans le message de
news:6d6101c475a5$457a19a0$

La somme global
La somme pour paris (champs ville critère paris)
la somme global - la somme pour paris (total pour les
autres ville)
Aprés tu n'a plus qu'à transformer en %

Je pense qu'effectivement c'est le plus simple car je n'arrive pas à trouver
la bonne syntaxe en SQL qui me permettrait de le faire en une seule
operation.
Merci du coup de main ;-)

--
@+
Ayrton
http://cerbermail.com/?FiLzjrFmWV
Click here to answer




-----Message d'origine-----
Bonsoir ,

En cette belle journée... Laurent Jordi
(www.ezlogic.mc)...

<inf[o]@ezlogic.mc> Tenait à nous dire :
Salut

Tu veux un pourcentage sur la valeur ou sur le nombre ?

Sur le nombre !




Si c'est sur le nombre tu dois faire un count


? Tu peux m'en dire un peu plus stp ?

..

Le plus simple serait de faire 2 sous requêtes, l'une
pour paris et la


seconde pour les autres villes. Il te suffirait
ensuite de diviser


l'un par l'autre * 100...



Oui mais le souci c'est que je n'ai qu'un nom de champ ;
mon champ s'appelle

Ville et à l'interieur il y a PAris, Bordeaux, Toulouse,
nice etc........

Quelle est l'astuce qui consiste à pouvoir cette
division ?


Merci

--
@+
Ayrton
http://cerbermail.com/?FiLzjrFmWV
Click here to answer


.




Avatar
Eric
Bonjour Ayrton,

Tu appelles le générateur de requêtes
Quand il te demande de choisir la table, tu cliques sur Fermer. Tu ouvres
la fenêtre SQL (Bouton SQL en haut à gauche) et tu copies ceci:

SELECT CInt(DSum("[Qte]","Ayrton01","[Ville]='Paris'")) AS TotalParis,
CInt(DSum("[Qte]","Ayrton01","[Ville]<>'Paris'")) AS TotalSaufParis,
[TotalParis]/[TotalSaufParis] AS Rapport;

Ca te donne le total des Qtés vendues sur Paris, celui Hors Paris et le
rapport des 2.

Autre solution qui te donne les Qtés vendues Paris, Province, France, qui
t'affiche le rapport Paris/Province et les % Paris/France,
Province/France.

Même principe pour obtenir le résultat. Fenêtre SQL:
SELECT CInt(DSum("[Qte]","Ayrton01","[Ville]='Paris'")) AS TotalParis,
CInt(DSum("[Qte]","Ayrton01","[Ville]<>'Paris'")) AS TotalSaufParis, CInt
(DSum("[Qte]","Ayrton01")) AS TotalQte, [TotalParis]/[TotalSaufParis] AS
Rapport, [TotalParis]/[TotalQte] AS [%Paris], [TotalSaufParis]/[TotalQte]
AS TotalProvince;

Espérant que ca réponde à ton besoin.

A+
Eric


"Ayrton" écrivait
news::

Bonsoir,

"didier" a écrit dans le message
de news:6d6101c475a5$457a19a0$

La somme global
La somme pour paris (champs ville critère paris)
la somme global - la somme pour paris (total pour les
autres ville)
Aprés tu n'a plus qu'à transformer en %

Je pense qu'effectivement c'est le plus simple car je n'arrive pas à
trouver la bonne syntaxe en SQL qui me permettrait de le faire en une
seule operation.
Merci du coup de main ;-)



Avatar
Eric
.../...
Ayant fait ca un peu trop vite, y a quelques erreurs

Remplaces CInt par CLng car tu risques d'avoir des qtés importantes( je
suppose que ce sont des nombres entiers, si des décimaux alors utilises
CSng ou CDbl)

et dans le 2eme SQL remplaces TotalProvince par [%Province]

Ayrton01 représente la table contenant les Qtés et les villes

A+
Eric

Eric écrivait
news::

Bonjour Ayrton,

Tu appelles le générateur de requêtes
Quand il te demande de choisir la table, tu cliques sur Fermer. Tu
ouvres la fenêtre SQL (Bouton SQL en haut à gauche) et tu copies ceci:

SELECT CInt(DSum("[Qte]","Ayrton01","[Ville]='Paris'")) AS TotalParis,
CInt(DSum("[Qte]","Ayrton01","[Ville]<>'Paris'")) AS TotalSaufParis,
[TotalParis]/[TotalSaufParis] AS Rapport;

Ca te donne le total des Qtés vendues sur Paris, celui Hors Paris et
le rapport des 2.

Autre solution qui te donne les Qtés vendues Paris, Province, France,
qui t'affiche le rapport Paris/Province et les % Paris/France,
Province/France.

Même principe pour obtenir le résultat. Fenêtre SQL:
SELECT CInt(DSum("[Qte]","Ayrton01","[Ville]='Paris'")) AS TotalParis,
CInt(DSum("[Qte]","Ayrton01","[Ville]<>'Paris'")) AS TotalSaufParis,
CInt (DSum("[Qte]","Ayrton01")) AS TotalQte,
[TotalParis]/[TotalSaufParis] AS Rapport, [TotalParis]/[TotalQte] AS
[%Paris], [TotalSaufParis]/[TotalQte] AS TotalProvince;

Espérant que ca réponde à ton besoin.

A+
Eric


"Ayrton" écrivait
news::

Bonsoir,

"didier" a écrit dans le
message de news:6d6101c475a5$457a19a0$

La somme global
La somme pour paris (champs ville critère paris)
la somme global - la somme pour paris (total pour les
autres ville)
Aprés tu n'a plus qu'à transformer en %

Je pense qu'effectivement c'est le plus simple car je n'arrive pas à
trouver la bonne syntaxe en SQL qui me permettrait de le faire en une
seule operation.
Merci du coup de main ;-)







Avatar
Ayrton
Bonjour Eric ,

Un énorme Merci pour ta gentillesse et ton aide ; j'ai oublié de préciser
une chose ; les champs Qté et Ville sont dans 2 Tables différentes ; Qté est
dans une table " Marchandises" et Ville dans une Table Clients ; donc
forcément je me fais jeter par Accesss car le SQL ne correspond pas à mes
Tables ; il faut juste , je pense, que je rajoute le nom de ma Table dans la
requête mais j'ai un petit doute ; si tu as l'occasion, peux tu me confirmer
?

Encore merci de ton aide ,-)

--
@+
Ayrton
http://cerbermail.com/?FiLzjrFmWV
Click here to answer





En cette belle journée... Eric... Tenait à nous
dire :
Bonjour Ayrton,

Tu appelles le générateur de requêtes
Quand il te demande de choisir la table, tu cliques sur Fermer. Tu
ouvres la fenêtre SQL (Bouton SQL en haut à gauche) et tu copies ceci:

SELECT CInt(DSum("[Qte]","Ayrton01","[Ville]='Paris'")) AS TotalParis,
CInt(DSum("[Qte]","Ayrton01","[Ville]<>'Paris'")) AS TotalSaufParis,
[TotalParis]/[TotalSaufParis] AS Rapport;

Ca te donne le total des Qtés vendues sur Paris, celui Hors Paris et
le rapport des 2.

Autre solution qui te donne les Qtés vendues Paris, Province, France,
qui t'affiche le rapport Paris/Province et les % Paris/France,
Province/France.

Même principe pour obtenir le résultat. Fenêtre SQL:
SELECT CInt(DSum("[Qte]","Ayrton01","[Ville]='Paris'")) AS TotalParis,
CInt(DSum("[Qte]","Ayrton01","[Ville]<>'Paris'")) AS TotalSaufParis,
CInt (DSum("[Qte]","Ayrton01")) AS TotalQte,
[TotalParis]/[TotalSaufParis] AS Rapport, [TotalParis]/[TotalQte] AS
[%Paris], [TotalSaufParis]/[TotalQte] AS TotalProvince;

Espérant que ca réponde à ton besoin.

A+
Eric


"Ayrton" écrivait
news::

Bonsoir,

"didier" a écrit dans le
message de news:6d6101c475a5$457a19a0$

La somme global
La somme pour paris (champs ville critère paris)
la somme global - la somme pour paris (total pour les
autres ville)
Aprés tu n'a plus qu'à transformer en %

Je pense qu'effectivement c'est le plus simple car je n'arrive pas à
trouver la bonne syntaxe en SQL qui me permettrait de le faire en une
seule operation.
Merci du coup de main ;-)




Avatar
Eric
Bonjour Ayrton,

Je supposes que tu as des relations entre plusieurs tables pour pouvoir
associer les quantites aux villes.
Par exemple tClient-tFacture-tLigneFacture avec

tClient tFacture tLigneFacture
IdClient---| IdFacture ---| NumLigne
NomClient |---- IdClient |--IdFacture
... DateFacture RefArticle
VilleClt ... Quantite
... ... ...

Tu crées une requête sur ces 3 tables ( à adapter à ton besoin), champs
Ville et Quantite,regroupement sur la ville et Somme sur Quantite, tu la
nommes Ayrton01 et l'utilises dans les formules que je t'ai données plus
haut.
(le champs SommeDeQuantite tu le renommes Qte ou tu adaptes dans les
fonctions DSum les noms des champs)

Ca marche ?

A+
Eric

PS: Le SQL de calcul(1er post) tu le tapes directement dans la fenêtre
SQL de ta requête car il ne fait pas directement appel aux
tables/requêtes puisqu'il ne contient que des DSum() ou des champs
calculés.


"Ayrton" écrivait
news:#:

Bonjour Eric ,

Un énorme Merci pour ta gentillesse et ton aide ; j'ai oublié de
préciser une chose ; les champs Qté et Ville sont dans 2 Tables
différentes ; Qté est dans une table " Marchandises" et Ville dans une
Table Clients ; donc forcément je me fais jeter par Accesss car le SQL
ne correspond pas à mes Tables ; il faut juste , je pense, que je
rajoute le nom de ma Table dans la requête mais j'ai un petit doute ;
si tu as l'occasion, peux tu me confirmer ?

Encore merci de ton aide ,-)



Avatar
Ayrton
Bonsoir Eric ,

Eric s'exprimait de la sorte :

Tout d'abord je te pris de m'excuser de ne pas t'avoir répondu plus tôt mais
je n'ai pas trop eu le temps de m'occuper de cette appli depuis Lundi ;
j'espère quand même que tu auras ce post et que tu ne m'en voudras pas trop
de répondre si tardivement ! !

Je supposes que tu as des relations entre plusieurs tables pour
pouvoir associer les quantites aux villes.
Par exemple tClient-tFacture-tLigneFacture avec

Tu as tout bien deviné ! ! ;-))



Ca marche ?

Oui ! ! ! Ca marche super bien et je suis ravi ( surtout pour mon pote

;-)) ) C'est génial et ça fonctionne super bien; c'est exactement ce qu'il
voulait ! !
Je te remercie vraiment Eric pour ta gentillesse et ton super coup de main ;
je rencontre encore quelques petits soucis avec le SQL mais je persévère ! !
! !
Bonne vacances si tu n'es pas encore parti ; en ce qui me concerne, ce sera
pour demain soir ;-))

A+ Eric et merci encore

--
@+
Ayrton
http://cerbermail.com/?FiLzjrFmWV
Click here to answer




"Ayrton" écrivait
news:#:

Bonjour Eric ,

Un énorme Merci pour ta gentillesse et ton aide ; j'ai oublié de
préciser une chose ; les champs Qté et Ville sont dans 2 Tables
différentes ; Qté est dans une table " Marchandises" et Ville dans
une Table Clients ; donc forcément je me fais jeter par Accesss car
le SQL ne correspond pas à mes Tables ; il faut juste , je pense,
que je rajoute le nom de ma Table dans la requête mais j'ai un petit
doute ; si tu as l'occasion, peux tu me confirmer ?

Encore merci de ton aide ,-)




Avatar
Eric
Bonjour Ayrton,

Content que ton problème soit résolu.
C'était avec plaisir.

Bonnes vacances
A+
Eric