PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → statistiques
statistiques
Débuté par Stephane Vital OHOU, 24 juin 2022 18:50 - 6 réponses
Membre enregistré
146 messages
Popularité : +2 (4 votes)
Posté le 24 juin 2022 - 18:50
Bonjour à tous,

Je souhaite avoir avec un code qui va me permettre de faire des statistiques.
Dans mon projet, j'ai une table qui comporte 4 colonnes qui gère les enseignants qui comporte les colonnes suivantes :
NOM-PRENOMS-GENRE-DISCIPLINE
J'ai ensuite 4 champs de saisies dans lesquels je souhaite afficher:

champ1 = Le nombre d'enseignant HOMME qui enseigne ANGLAIS
champ2 = Le nombre d'enseignant FEMME qui enseigne ANGLAIS
champ3 = Le nombre total d'enseignant qui enseigne ANGLAIS
champ4 = Le nombre total d'enseignants (toutes disciplines confondues)

Merci de m'aider

--
Très respectueusement
Membre enregistré
394 messages
Popularité : +13 (13 votes)
Posté le 24 juin 2022 - 19:01
Bonjour,

Une première (et sûrement la plus simple) solution serait de passer sur chaque enregistrement et de rajouter +1 à des compteurs lorsque les conditions sont correctes :

SELECT
SUM(CASE WHEN Genre = 'H' AND Discipline = 'Anglais' THEN 1 ELSE 0 END) AS totalEnseignantsHommesAnglais,
SUM(CASE WHEN Genre = 'F' AND Discipline = 'Anglais' THEN 1 ELSE 0 END) AS totalEnseignantsFemmesAnglais,
SUM(CASE WHEN Discipline = 'Anglais' THEN 1 ELSE 0 END) AS totalEnseignantsAnglais,
COUNT(*) AS totalEnseignants
FROM
Enseignants


Mais comme cette condition passe sur tous les enregistrements et n'a pas de conditions WHERE, suivant la volumétrie de la table ce n'est pas forcément la plus efficace. Si index il y a, pour en tirer profit il faudra plutôt faire autant de requêtes que de champs souhaités, en adaptant les conditions WHERE en fonction :
SELECT
COUNT(*) as totalEnseignantsHommesAnglais
FROM
Enseignants
WHERE
Genre = 'H'
AND Discipline = 'Anglais'

(etc..)
Membre enregistré
146 messages
Popularité : +2 (4 votes)
Posté le 24 juin 2022 - 19:29
Salut bchanudet,
J'ai vraiment des lacunes en Anglais donc sa sera très difficile pour moi d'interpréter ton code.

--
Très respectueusement
Membre enregistré
3 333 messages
Popularité : +93 (137 votes)
Posté le 24 juin 2022 - 20:33
Stéphane malheureusement le code SQL n'existe que en anglais.
Membre enregistré
146 messages
Popularité : +2 (4 votes)
Posté le 25 juin 2022 - 01:06
Ok, merci Popoy pour cette information. Je vais me débrouiller pour comprendre ce code.

--
Très respectueusement
Membre enregistré
3 882 messages
Popularité : +227 (347 votes)
Posté le 25 juin 2022 - 13:37
Voici un lien qui pourra t'être utile : https://sql.sh/
Certaines fonction sont spécifiques à certains SGBD. Le SQL Windev n'est pas de reste. Il applique (en totalité, contrairement à certains SGBD,) la norme SQL 92 (donc on oublie les requêtes récursives), et supporte certaines fonctions d'autres SGBD. Pour plus de détails : https://doc.pcsoft.fr/?2034005&name=fonctions_sql_utilisables_dans_les_requetes_sql

--
Il y a peut être plus simple, mais, ça tourne
Posté le 27 juin 2022 - 10:36
copier coller sa te parle pas oncle?