Compter le nombre de case cochées

waluigi44 Messages postés 15 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 29 septembre 2010 - 29 juil. 2010 à 16:21
crn_c21 Messages postés 302 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 4 février 2011 - 18 sept. 2010 à 01:12
Bonjour à tous,

Je souhaite compter le nombre de case cochées qui sont dans plusieurs colonnes.

Voici ma requete:

SELET COUNT(tool1) as Som, COUNT(tool2) as Som
From MATABLE
Where (tool=1) or (tool2=1)


J'ai donc un résultat sur deux colonnes :

Tool1 Tool2
2 3

Mais j'aurais souhaité obtenir une cellule avec 5

J'ai essayé GROUP BY mais je n'y arrive pas.

Merci de votre aide

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 juil. 2010 à 17:33
Salut,

Essaye plutôt ainsi :
SELECT COUNT(tool1) + COUNT(tool2) as Som
From MATABLE
Where (tool=1) or (tool2=1)
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
waluigi44 Messages postés 15 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 29 septembre 2010
30 juil. 2010 à 09:39
Merci, je pensais l'avoir tenté mais finalement non.

Par contre mon code ne retourne pas la bonne valeur comme je pouvais le penser.

Le calcul du nombre de case cochées n'est pas correct. J'ai testé ceci mais j'ai une erreur.

SELECT COUNT(tool1) + COUNT(tool2) as Som
From MATABLE
Where (tool=true) or (tool2=true)

J'ai l'impression que mon calcul s'incrémente au fur et à mesure que je coche des cases, mais la valeur ne diminue pas.

Une idée ?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
30 juil. 2010 à 10:23
Salut,

Le problème avec cette requête, c'est qu'il compte le nombre de ligne, et non le nombre de champs à true : si un enregistrement contient deux valeurs à true, il n'en comptera qu'un seul !

Essaye ainsi :
SELECT SUM(tool1) + SUM(tool2) as Som
From MATABLE
Where (tool=1) or (tool2=1)
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
waluigi44 Messages postés 15 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 29 septembre 2010
30 juil. 2010 à 10:34
Je viens de tester mais malheuresement j'obtiens le message d'erreur suivant.

"L'opérande bit n'est pas valide pour l'opérande sum"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Tolliap Messages postés 60 Date d'inscription lundi 4 décembre 2006 Statut Membre Dernière intervention 11 janvier 2013
9 août 2010 à 20:46
solution :

select som1,som2, R.som1+R.som2 from (
select
sum(case when tool1=1 then 1 else 0 end) as som1,
sum(case when tool2=1 then 1 else 0 end) as som2
from MATABLE) as R

Qui ne tente rien, n'a rien
0
waluigi44 Messages postés 15 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 29 septembre 2010
10 août 2010 à 07:44
Bonjour et merci de ton aide.

Je vais tenter cette solution mais que signifie "R.som1" et "as R"

Merci
0
waluigi44 Messages postés 15 Date d'inscription samedi 1 janvier 2005 Statut Membre Dernière intervention 29 septembre 2010
10 août 2010 à 08:08
Le code fonctionne mais seulement sur tool1. Quand je coche tool2 çà n'affecte pas la valeur de la requête retournée.
0
crn_c21 Messages postés 302 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 4 février 2011
18 sept. 2010 à 01:12
En retard!!


SELECT SUM(CAST(tool1 as int)) + SUM(CAST(tool2 as Int)) as Som
From MATABLE
Where (tool=true) or (tool2=true)
0
Rejoignez-nous