|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : février 2004 Messages : 24 ![]() |
Bonjour,
Je tourne un peu en rond sur un probleme de calcul de pourcentages. Je travaille sous MySQL 4.1.7 (pas de vues) Et mon problème est le suivant : Je possède une table `hmlog` contenant 5 champs: id_log, date, test_name, status_id et log_time. Je souhaite calculer le pourcentage de logs pourlesquels le 'status_id' est à 1 pour chaque jour, puis pour chaque mois puis pour chaque année. Je possède une table `Journalier` dans laquelle je veux "includer" mes résultats puis une table `mensuel` et enfin une table `annuel`. Je voudrais que ce cacul se fasse tous les soir pour que ma base soit à jour tous les matins. Je ne sais pas comment m'y prendre. Je pensais faire un script en SQL en tache planifiée mais je ne vois pas comment faire ce cacul de pourcentages uniquement avec du SQL. Et je ne sais pas si les procédures stoquées peuvent m'aider ... J'ai besoin d'aide.Au secours Merci d'avance. J.Charles |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() Inscription : avril 2004 Messages : 734 ![]() |
Bonjour,
Un truc dans ce style pourrait peut-être aider : Code :
__________________
Pensez au tag
|
||
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : février 2004 Messages : 24 ![]() |
Ok ... Je te remercie ...
Je vais tester ca dans la matinée et je vous tiens au courant. Encore merci. J.Charles |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : février 2004 Messages : 24 ![]() |
Ca y'est j'ai enfin pu tester cette formule ... Et effectivement cela fonctionne.
Est-il possible de m'expliquer le Je ne suis pas sur de bien saisir ... Si status=1 on ajoute 1 sinon on ajoute rien c'est ca ? Merci pour l'aide. J.Charles |
|
|
00
|
|
|
#5 |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Oui, c'est cela.
COUNT() compte le nombre d'enregistrements mais ne prend pas en compte les NULL. Donc ici, l'astuce consiste à fournir NULL si l'enregistrement ne nous intéresse pas. Cela est fait avec IF (condition, valeur si condition vraie, valeur si condition fausse). Si "Status=1" est vrai, alors COUNT recevra 1 et prendra en compte cette valeur dans son comptage. Si Status <> 1, COUNT recevra NULL et ne prendra pas en compte cette valeur dans le comptage. Voilà, j'espère que mon charabia est clair |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : février 2004 Messages : 24 ![]() |
On ne peut plus clair !
Merci très beaucoup J.Charles |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com