Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/09/2011, 12h59   #1
Membre habitué
 
Inscription : janvier 2005
Messages : 527
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 527
Points : 134
Points : 134
Par défaut Somme de MaVariable1=Oui et/ou MaVariable2=Oui

Bonjour,

Je bloque sur une requête. J'ai une table avec la variable V1 et la variable V2. V1 ou V2 sont en texte. Je veux compter combien de fois j'ai V1="O" ET combien de fois j'ai V2="O" sachant que je peux avoir à la fois V1="O" et V2="O" pour une même observation (dans ce cas là, je veux que ça compte double).

Si je fais:
Code :
1
2
3
4
5
6
 
select count(V1) from MyTable
where V1='O'
UNION ALL
select count(V2) from MyTable
where V2='O'
j'obtiens alors 2 résultats (un pour V1 et un pour V2): comment n'avoir qu'un résultat qui serait donc la somme de ces deux là ?

Merci de votre aide.
debdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 16h02   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour Debdev,

Intéressant petit problème...

Suggestion :
  • créer une table Test avec un seul enregistrement ;
  • via l'assistant, créer une requête analysant Test (FROM) ;
  • x : (select count(*) from MyTable where V1='O') (SELECT) ;
  • y : (select count(*) from MyTable where V2='O') (SELECT).
==> tu devrais obtenir ce que tu souhaites.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 15h25   #3
Membre habitué
 
Inscription : janvier 2005
Messages : 527
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 527
Points : 134
Points : 134
Merci pour ta réponse.
Je teste dès demain et je reviens sur le forum pour dire si j'ai tout compris
debdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2011, 01h43   #4
Membre confirmé
 
Homme
Développeur amateur
Inscription : mars 2009
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur amateur

Informations forums :
Inscription : mars 2009
Messages : 176
Points : 255
Points : 255
Bonsoir,

Je me permet de m'imiscer .
Je propose d'utiliser une variable v qui va analyse v1 et v2 comme ceci:
Code :
v= iif(v1=0 et v2=0; 2;iif( v1=0 ou v2=0;1;0))
il suffit ensuite de faire un sum sur v pour avoir Le resultat recherché
Code :
select sum(v) from mytable
On passer aussi par un recordset vba en creant un compteur qui s'incrementera lorsque v1=0 ou v2=0

cordialement
reedy est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 02/10/2011, 15h52   #5
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 447
Points : 4 447
bonjour,

ou encore:

Code sql :
SELECT sum(iif(v1='O',1,0) + iif(v2='O',1,0)) AS Total FROM mytable ;
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/10/2011, 09h53   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour à tous,

Très astucieuse utilisation des 0 et des 1 : bravo Reedy et Fabien !
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 15h16   #7
Membre habitué
 
Inscription : janvier 2005
Messages : 527
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 527
Points : 134
Points : 134
Bonjour à tous,
dsl de ne revenir sur le forum qu'aujourd'hui.

Un grand merci à vous, j'ai testé le code et ça marche impec
Je n'y aurai pas pensé moi-même, d'ailleurs le Iif me sera utile pr d'autres trucs

Bonne fin de journée !
debdev est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h50.


 
 
 
 
Partenaires

Hébergement Web