Bonjour,
j'ai beau chercher sur google net sur le forum, je n'arrive pas à trouver la bonne requête à faire.
Voici le descriptif de la table sur lequel je veux travailler:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 id 1 0 NO int 10 0 titre 2 '' NO varchar date_pub 3 current_timestamp() NO timestamp texte 4 NO text pj_1 5 NULL YES varchar pj_2 6 NULL YES varchar pj_3 7 NULL YES varchar is_enabled 8 NO tinyint 3 0 id_user 9 0 NO int 10 0 id_instance 10 0 YES int 10 0
je cherche a faire une requête qui compte le nombre colonne pj_1,pj_2e t pj_3 qui soient not null pour un id précis.
j'ai essayé de me baseé sur les réponse :
https://www.developpez.net/forums/d1...-count-select/ et https://www.developpez.net/forums/d2...s-same-values/
mais je n'obtient des erreurs ou alors un resultat non pertinant
par exemple la requete faite omme ceci :
me renvoie l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 select sum ( case when PJ_1 is not null then 1 else 0 end ) as nombre1 from news where id=56) union all (case when PJ_2 is not null then 1 else 0 end ) as nombre2 from news where id=56 ) ;
j'ai réussi a faire la requete suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') union all (case when PJ_2 is not null then 1 else 0 end ) as nombre2 from news' at line 4
cela me renvoi le résultat suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select count(case when pj_1 is not null then 1 end), count(case when pj_2 is not null then 1 end), count(case when pj_3 is not null then 1 end) from news where id =56 ;
alors que je voudrais avoir 3 comme résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 1 1 1
j’espère que mon descriptif de ma demande est assez claire.
avez vous une idée comment je peux corriger mes erreurs?
merci par avance pour votre aide.
Partager