OVH Cloud OVH Cloud

Simplification nombre de requête

24 réponses
Avatar
Hervé DUCARNE
Bonjour,

Une question simple :

J'ai une table avec une clé, et différents champs booléens.

Je voudrais connaitre, pour chaque champ, le nombre d'enregistrement à vrai.

Dans la requête pour calculer pour un champ, no problème, j'ai mis la clé,
dans opération je mets "compte", je mets le champ, et dans opération je mets
"où" et critère 'vrai'.

J'ai 100 champs ;-(

Il y a t'il un moyen qui puisse me permettre d'éviter de créer 100 requêtes
?

Merci.

4 réponses

1 2 3
Avatar
Hervé DUCARNE
En fait, j'ai une table "données" structurée de cette manière :
clé (num_auto), champ1 (bool), champ2 (bool), ....., champ100(bool) et
d'autres champs mais on s'en fout ici ;-)

Je voulais (c'est bon ça marche grace à Jimmy et Eric) obtenir ça :
champ1Vrai Champ2Vrai ...
80 126 ...

La table comporte ~ 300 enregistrements.

Merci de t'être inquiété de mon problème (qui n'est plus).

@+
"Jessy Sempere [MVP]" a écrit dans le message de
news:4333a3ac$
Bonjour
Merci Jessy,
Mais je voulais avoir la somme de chaque clé...
Pas évident à suivre ce fil :-)


Effectivement pas évident à suivre... ;-)
Tu dis que tu veux la somme de chaque clé... donc tu veux connaître le
nombre de vrai de la clé x pour le champ1, le champ2, ..., le champ100

Si c'est bien ça, c'est exactement ce que fait la requête que je te
propose.

Sinon ??? C'est quoi comme donnée ta clé ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jessy Sempere [MVP]" a écrit dans le
message


de
news:4332c789$
Bonjour

J'ai pas forcément tout suivi mais bon...
Tu as :
Clé 1 2 3 4 5 ...
---------------------------------------
x vrai vrai faux faux vrai
x faux vrai faux faux vrai
z vrai faux faux vrai vrai
z faux vrai vrai vrai faux
z vrai vrai faux vrai vrai
...

Et toi tu veux connaître le nombre de vrai par champs :
Clé 1 2 3 4 5
-------------------------
x 1 2 0 0 2
z 2 2 1 3 2
...

Si c'est bien ce que tu veux, il te suffit de faire :

SELECT taTable.Clé, Sum([1]*-1) AS Expr1,
Sum([2]*-1) AS Expr2, Sum([3]*-1) AS Expr3, ...
FROM taTable
GROUP BY taTable.Clé;

Biensûr vu tous les mails, je ne suis pas sûr d'avoir tout compris...
;-))



@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:

Bonjour,

Une question simple :

J'ai une table avec une clé, et différents champs booléens.

Je voudrais connaitre, pour chaque champ, le nombre d'enregistrement
à




vrai.

Dans la requête pour calculer pour un champ, no problème, j'ai mis
la




clé,
dans opération je mets "compte", je mets le champ, et dans opération
je



mets
"où" et critère 'vrai'.

J'ai 100 champs ;-(

Il y a t'il un moyen qui puisse me permettre d'éviter de créer 100
requêtes

?

Merci.
















Avatar
Jessy Sempere [MVP]
Ok c'est plus clair
En fait tu n'as pas besoins de regrouper sur la clé donc ça aurait donné
une requête du genre :

SELECT -Sum([1]) AS Expr1,
-Sum([2]) AS Expr2,
-Sum([3]) AS Expr3,
...
FROM taTable;

En gros c'est ce que te fait faire Eric sauf qu'il a intégré dans
son code une condition Where qui n'est pas utile.


@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:

En fait, j'ai une table "données" structurée de cette manière :
clé (num_auto), champ1 (bool), champ2 (bool), ....., champ100(bool) et
d'autres champs mais on s'en fout ici ;-)

Je voulais (c'est bon ça marche grace à Jimmy et Eric) obtenir ça :
champ1Vrai Champ2Vrai ...
80 126 ...

La table comporte ~ 300 enregistrements.

Merci de t'être inquiété de mon problème (qui n'est plus).

@+
"Jessy Sempere [MVP]" a écrit dans le message
de

news:4333a3ac$
Bonjour
Merci Jessy,
Mais je voulais avoir la somme de chaque clé...
Pas évident à suivre ce fil :-)


Effectivement pas évident à suivre... ;-)
Tu dis que tu veux la somme de chaque clé... donc tu veux connaître le
nombre de vrai de la clé x pour le champ1, le champ2, ..., le champ100

Si c'est bien ça, c'est exactement ce que fait la requête que je te
propose.

Sinon ??? C'est quoi comme donnée ta clé ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jessy Sempere [MVP]" a écrit dans le
message


de
news:4332c789$
Bonjour

J'ai pas forcément tout suivi mais bon...
Tu as :
Clé 1 2 3 4 5 ...
---------------------------------------
x vrai vrai faux faux vrai
x faux vrai faux faux vrai
z vrai faux faux vrai vrai
z faux vrai vrai vrai faux
z vrai vrai faux vrai vrai
...

Et toi tu veux connaître le nombre de vrai par champs :
Clé 1 2 3 4 5
-------------------------
x 1 2 0 0 2
z 2 2 1 3 2
...

Si c'est bien ce que tu veux, il te suffit de faire :

SELECT taTable.Clé, Sum([1]*-1) AS Expr1,
Sum([2]*-1) AS Expr2, Sum([3]*-1) AS Expr3, ...
FROM taTable
GROUP BY taTable.Clé;

Biensûr vu tous les mails, je ne suis pas sûr d'avoir tout
compris...




;-))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message
news:





Bonjour,

Une question simple :

J'ai une table avec une clé, et différents champs booléens.

Je voudrais connaitre, pour chaque champ, le nombre
d'enregistrement





à
vrai.

Dans la requête pour calculer pour un champ, no problème, j'ai mis
la




clé,
dans opération je mets "compte", je mets le champ, et dans
opération





je
mets
"où" et critère 'vrai'.

J'ai 100 champs ;-(

Il y a t'il un moyen qui puisse me permettre d'éviter de créer 100
requêtes

?

Merci.




















Avatar
Hervé DUCARNE
Bon, ça devient de plus en plus simple !

Le seul "hic" aurait été de saisir sum([1]), ...... jusqu'à 100, d'où la
création de la boucle.

Va vraiment falloir que je pense à travailler directement en mode sql pour
mes requêtes, là en mode création, la seule chose à laquelle j'ai pensé,
c'est de mettre l'opération somme avec la suite que l'on connait...

Merci et @+


"Jessy Sempere [MVP]" a écrit dans le message de
news:4333b26a$
Ok c'est plus clair
En fait tu n'as pas besoins de regrouper sur la clé donc ça aurait donné
une requête du genre :

SELECT -Sum([1]) AS Expr1,
-Sum([2]) AS Expr2,
-Sum([3]) AS Expr3,
...
FROM taTable;

En gros c'est ce que te fait faire Eric sauf qu'il a intégré dans
son code une condition Where qui n'est pas utile.


@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message news:

En fait, j'ai une table "données" structurée de cette manière :
clé (num_auto), champ1 (bool), champ2 (bool), ....., champ100(bool) et
d'autres champs mais on s'en fout ici ;-)

Je voulais (c'est bon ça marche grace à Jimmy et Eric) obtenir ça :
champ1Vrai Champ2Vrai ...
80 126 ...

La table comporte ~ 300 enregistrements.

Merci de t'être inquiété de mon problème (qui n'est plus).

@+
"Jessy Sempere [MVP]" a écrit dans le
message


de
news:4333a3ac$
Bonjour
Merci Jessy,
Mais je voulais avoir la somme de chaque clé...
Pas évident à suivre ce fil :-)


Effectivement pas évident à suivre... ;-)
Tu dis que tu veux la somme de chaque clé... donc tu veux connaître le
nombre de vrai de la clé x pour le champ1, le champ2, ..., le champ100

Si c'est bien ça, c'est exactement ce que fait la requête que je te
propose.

Sinon ??? C'est quoi comme donnée ta clé ?

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jessy Sempere [MVP]" a écrit dans le
message


de
news:4332c789$
Bonjour

J'ai pas forcément tout suivi mais bon...
Tu as :
Clé 1 2 3 4 5 ...
---------------------------------------
x vrai vrai faux faux vrai
x faux vrai faux faux vrai
z vrai faux faux vrai vrai
z faux vrai vrai vrai faux
z vrai vrai faux vrai vrai
...

Et toi tu veux connaître le nombre de vrai par champs :
Clé 1 2 3 4 5
-------------------------
x 1 2 0 0 2
z 2 2 1 3 2
...

Si c'est bien ce que tu veux, il te suffit de faire :

SELECT taTable.Clé, Sum([1]*-1) AS Expr1,
Sum([2]*-1) AS Expr2, Sum([3]*-1) AS Expr3, ...
FROM taTable
GROUP BY taTable.Clé;

Biensûr vu tous les mails, je ne suis pas sûr d'avoir tout
compris...




;-))

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Hervé DUCARNE" a écrit dans le message
news:





Bonjour,

Une question simple :

J'ai une table avec une clé, et différents champs booléens.

Je voudrais connaitre, pour chaque champ, le nombre
d'enregistrement





à
vrai.

Dans la requête pour calculer pour un champ, no problème, j'ai
mis






la
clé,
dans opération je mets "compte", je mets le champ, et dans
opération





je
mets
"où" et critère 'vrai'.

J'ai 100 champs ;-(

Il y a t'il un moyen qui puisse me permettre d'éviter de créer
100






requêtes
?

Merci.
























Avatar
Eric
Bonjour Jessy,

Tu as parfaitement raison la condition Where ne sert strictement à
rien,(somme(varbooléen)*-1 ne peut donner que 0 si varbooléen est faux
et k (entier>0) si varbooléen est Vrai, je sais pas ce qui m'a pris, je
devais être dans un état second) mais je n'ai pas voulu rajouter une
couche à ce fil très long, d'autant plus que dans ton sql tu mets bien
en évidence le calcul des nbs de Vrai.
Voila ce que ça coûte de ne pas réfléchir un minimum :-(

Ok c'est plus clair
En fait tu n'as pas besoins de regrouper sur la clé donc ça aurait donné
une requête du genre :

SELECT -Sum([1]) AS Expr1,
-Sum([2]) AS Expr2,
-Sum([3]) AS Expr3,
...
FROM taTable;

En gros c'est ce que te fait faire Eric sauf qu'il a intégré dans
son code une condition Where qui n'est pas utile.


@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------



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

1 2 3