GNT sans publicité, site mobile, fonctionnalitées exclusives...

Souci de requête pourcentage

Le
Ayrton [ASC]
Bonjour à tous,

Volià mon problème :
J'ai essayé de faire une petite appli pour lr boulot et bien que tout se
présentait bie, je rencontre un problème avec une requête pourcentage et un
seul nm de champ ; je m'explique :
J'ai un champs Societe qui est en vrai/faux ; on coche si c'est une societe
et on laisse si c'est un particulier.
J'aimerai faire une requête qui me donne le nombre ou plus exactement le
pourcentage de societe et de particuliers ; seulement je ne sais pas comment
faire car comme je n'ai qu'un seul nom de champs, je ne peux pas executer ma
requête ;-(
Voici ce que j'ai fait :
1) je cree une requête avec le nombre total de clients + le champs societe
dans lequel je mets " Vrai " comme critère ; cela me donne donc le nombre de
Societe
2) je fais la même chose en mettant " Faux " comme critère pour avoir le
nombre de Particuliers

Le souci est que quand je veux faire ma rerquête pourcentage, j'ai deux fois
le champs " Societe" de sélectioné et donc ça ne fonctionne pas.
Voilà la requête qui ne fonctionne pas :
SELECT QryTotalClients.CompteDeNuméro, QryParticuliers.Societe,
QrySocietes.Societe, Format([Societe]/[Societe],"Percent") AS Expr1
FROM QryParticuliers, QrySocietes, QryTotalClients;

Ca me parait normal que ça ne fonctionne pas mais je ne sais pas quoi
modifier ni comment ;-(

Merci de votre aide et de vos conseils

Cordialement

--
@+
Ayrton
http://cerbermail.com/?NiMhJk1y8Y
Date : Le 13/06/2005
Lire les 8 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric
Le #5794141
Bonjour,

Si j'ai bien compris tu n'as qu'une seule table (ici nommée LaTable.

Si c'est bien le cas, tu peux faire comme ca :

SELECT Format(Abs(Sum([societe]))/DCount("*","LaTable"),"Percent") AS
[%Societe],
Format(1-Abs(Sum([societe]))/DCount("*","LaTable"),"Percent") AS [%Client]
FROM LaTable;


--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/micro...cess?hl=fr

Bonjour à tous,

Volià mon problème :
J'ai essayé de faire une petite appli pour lr boulot et bien que tout se
présentait bie, je rencontre un problème avec une requête pourcentage et un
seul nm de champ ; je m'explique :
J'ai un champs Societe qui est en vrai/faux ; on coche si c'est une societe
et on laisse si c'est un particulier.
J'aimerai faire une requête qui me donne le nombre ou plus exactement le
pourcentage de societe et de particuliers ; seulement je ne sais pas comment
faire car comme je n'ai qu'un seul nom de champs, je ne peux pas executer ma
requête ;-(
Voici ce que j'ai fait :
1) je cree une requête avec le nombre total de clients + le champs societe
dans lequel je mets " Vrai " comme critère ; cela me donne donc le nombre de
Societe
2) je fais la même chose en mettant " Faux " comme critère pour avoir le
nombre de Particuliers

Le souci est que quand je veux faire ma rerquête pourcentage, j'ai deux fois
le champs " Societe" de sélectioné et donc ça ne fonctionne pas.
Voilà la requête qui ne fonctionne pas :
SELECT QryTotalClients.CompteDeNuméro, QryParticuliers.Societe,
QrySocietes.Societe, Format([Societe]/[Societe],"Percent") AS Expr1
FROM QryParticuliers, QrySocietes, QryTotalClients;

Ca me parait normal que ça ne fonctionne pas mais je ne sais pas quoi
modifier ni comment ;-(

Merci de votre aide et de vos conseils

Cordialement



Ayrton [ASC]
Le #5794131
Bonjour *Eric*
Dans ton message de news:,
Tu as pensé très fort :-(*)
Bonjour,


Bonjour Eric,

Si j'ai bien compris tu n'as qu'une seule table (ici nommée LaTable.


C'est toput à fait ça ;-)

Si c'est bien le cas, tu peux faire comme ca :

SELECT Format(Abs(Sum([societe]))/DCount("*","LaTable"),"Percent") AS
[%Societe],
Format(1-Abs(Sum([societe]))/DCount("*","LaTable"),"Percent") AS
[%Client] FROM LaTable;


Merci infiniement ! Ca fonctionne pil poil ! Je suis super content ! Merci
beaucoup.

Comme j'aime bien comprendre ce que l'on m'indique, sans vouloir abuser de
ta gentillesse pourrais tu me dire ce que veux dire :
1) "*"
2) j'ai du mal à traduire ceci : Format (1-Abs ........)
Je connais la fonction Sum et je vais me débrouiller pour " traduire " ce
que tu m'as gentillement fait mais pour ces deux choses, je sèche ! ! ;-(

Une dernière petite chose et ce sera tout :
Quand je selectionne mon champs Societe dans une requête en mode creation et
que comme critère j'indique " Faux ", je ne peux pas avoir le total en
faisant " Somme " ou " Compte ".
Est ce normal ??

Meric encore pour tout Eric

Bonne fin de soirée

Bien à toi

--
@+
Ayrton
http://cerbermail.com/?NiMhJk1y8Y
Date : Le 13/06/2005

Eric
Le #5794101
Bonsoir Ayron


[...]

Comme j'aime bien comprendre ce que l'on m'indique, sans vouloir abuser de
ta gentillesse pourrais tu me dire ce que veux dire :
1) "*"


Quand tu veux compter un nb d'enregistrement dans un jeu
d'enregistrements, tu n'as pas l'obligation de préciser le
champ.En d'autres termes, en utilisant la fonction DCount(),
écrire DCount("*","LaTable") ou DCount("LeChamp","LaTable")
retourne la même valeur.

2) j'ai du mal à traduire ceci : Format (1-Abs ........)


Décomposons : une variable booléeenne prend les valeurs -1 pour
Vrai (ou Oui) et 0 pour Faux (ou Non). Si tu veux compter les
Vrai, il faut utiliser la fonction Somme(), et non la fonction
Compte ou Count() car celle ci denombrerait le nb de fois le
champ booléen quelque soit sa valeur.
Celle-ci va retourner une valeur négative, d'où l'emploi de
la fonction Abs(), puis de Format() pour afficher en %

La fonction
Format(Abs(Sum([societe]))/DCount("*","LaTable"),"Percent")
retourne le % de société. Cette valeur est comprise entre 0 et 1
même si tu l'affiches au format % (80% = 0.8)
Pour obtenir le nb de particuliers tu prends le complément à 1
de Format(Abs(Sum([societe]))/DCount("*","LaTable"),"Percent")
Donc Format(1- Abs(...)) retourne le % de particuliers puisque tu
n'as que 2 cas : Societe ou Particulier. C'est faux si plus
de 2 possibilités.


[...]
Quand je selectionne mon champs Societe dans une requête en mode creation et
que comme critère j'indique " Faux ", je ne peux pas avoir le total en
faisant " Somme " ou " Compte ".
Est ce normal ??


Le SQL pour avoir le nb de particuliers serait :
SELECT Count("*") AS [LeNbdeParticuliers]
FROM LaTable
WHERE societeúlse;
en te rappelant que tu peux mettre Count("societe") ou
Count("LeChamp") à la place de Count("*")

Par contre, remplacer Count("societe"]) par Sum([societe])
dans le SQL ci-dessus te renverrait 0 puisque societe à Faux
vaut 0 et la somme de 0 est égale à 0.


J'espère que c'est devenu un peu plus clair

Cordialement
--
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/micro...cess?hl=fr

Eric
Le #5794091
.../...

Quelques petites erreurs de frappe, il se fait tard ;-) les doigts ne
sont plus aussi agiles.
Lire :
Count([societe]) pour Count("societe")
ou Count([LeChamp]) à la place de Count("*")

et
Count([societe]) à la place de Count("societe"])
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/micro...cess?hl=fr


en te rappelant que tu peux mettre Count("societe") ou
Count("LeChamp") à la place de Count("*")

Par contre, remplacer Count("societe"]) par Sum([societe])


Ayrton [ASC]
Le #5794081
Bonjour *Eric*
Dans ton message de news:uy8NZ$,
Tu as pensé très fort :-(*)


Re Eric,

Quelques petites erreurs de frappe, il se fait tard ;-) les doigts ne
sont plus aussi agiles.


C'est normal en fin de journée ;-

Lire :
Count([societe]) pour Count("societe")
ou Count([LeChamp]) à la place de Count("*")

et
Count([societe]) à la place de Count("societe"])



Merci 1000 fois pour ta gentillesse.
je prends bonne note de tes explications très claires et je me les mets dans
un petit coin car je sais qu'à un moment ou un autre j'en aurais besoin; je
penserai à toi à ce moment là ;-)

Merci pour tout Eric

Bonne fin de soirée

Bien à toi

--
@+
Ayrton
http://cerbermail.com/?NiMhJk1y8Y
Date : Le 13/06/2005

Publicité
Suivre les réponses
Poster une réponse
Anonyme