Calcul mysql

Résolu
Bonjour,

je cherche à faire un opération en Mysql

la valeur :2 et d'afficher si 0 on affiche =0 si inférieur à la moité = 1 si supérieur à la moité =2

en php j'avais fait ça
<?php 
$a = {$columns:Libre}{$value} / 2;
if ({$columns:Libre}{$value}E == 0) {
echo '<img src="/images/design/rouge.png"/>';
} elseif ($a >= {$columns:Place}{$value} {
echo '<img src="/images/design/orange.png"/>';
} else {
echo '<img src="/images/design/vert.png"/>';
}?>

Mais pour mysq c'est plus compliqué

Ma valeur :2
(COUNT(r.people) /2 ) IF 

5 réponses

  1. Contributeur
    bonjour, peux-tu donner un exemple avec des données, ou bien faire des phrases completes?
    1. Salut!! tu as bien expliqué avec php alors si tu pouvait donner quelques exemples des donnees déjà enregistrées dans tes tables c'est beaucoup mieux, cela facilitera la tâche de bien te repondre.
      1. IF (14>(14 /2 ), "vert", "orange") AS statut ,
        il me manque la 3eme conditions pour afficher =0 (pour le rouge)
        j'ai essayé avec des else mais j'ai une erreure
    2. bonjour oui je vais essayer d'être plus clair...

      je récupère une valeur avec COUNT(r.people) exemple 14

      j'aimerais afficher:
      si 14 est plus grand que la moité j'aimerais afficher 2
      si 14 est plus petit que la moité, j'aimerais afficher 1
      1. Contributeur
        quand est-ce que 14 sera plus petit que 7?
      2. oui vous avez raison.

        l'idée c'est de mettre un code couleur pour la gestion du stock si on a plus que la moité c'est vert si on moins que la moité c'est orange et si le stock est de zéro on est à rouge.

        l'exemple est avec un stock de 14.
    3. J'en suis là
      IF(COUNT(r.people)>(COUNT(r.people) /2 ), "vert", "orange") AS statut ,


      il me manque le = à zéro j'affiche le rouge
      1. J'ai réussi en me basant sur mon code PHP
        merci pour votre aide

        CASE 
        WHEN ((FLOOR(LEFT (RIGHT (e.params, LENGTH(e.params) - INSTR(e.params, "maxReg") -8 ),3 ) )) = (COUNT(r.people)) )THEN 'rouge'
        WHEN ((COUNT(r.people) /2 )>=(LEFT (RIGHT (e.params, LENGTH(e.params) - INSTR(e.params, "maxReg") -8 ),3 )) - (COUNT(r.people) )) THEN 'orange'
        ELSE 'vert'
        END AS Statut ,

        --
        1. Contributeur
          tu peux aussi imbriquer des IF:
          IF (14>(14 /2 ), "vert", IF (14=0, "rouge", "orange"))
        2. Merci, c'est bien plus propre...