Aidez mois

Résolu
Bonjour
lorsque j'utilise le group by pour calculer le nombre d'accident selon une contrat
j'ai trouvé un probléme lorsque dans la méme contrat je trouve dans le champs nature c et m je veux qu'il affiche le c
quoi a faire j'ai utiliser case when nature=c or nature=m than nature=c
mais n'a marche pas

2 réponses

  1. Modérateur
    Bonjour,

    Sans voir ce que tu as écris ... impossible de t'aider !

    NB: **** Attention ****
    Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
    Explications disponibles ici :
    https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

    .
    1. re
      j'ai utilisé le "group by " de SQL pour calculer le nombre d'accident par contrat et pour afficher la nature_d'accident
      select count(N_s) , nature
      from accident
      group by nature;

      Est ce que une nature "c" ou bien "m" .
      mais un probléme a été signaler , car le cas ou il récupère 3 accident par contrat de nature différente il regroupe les 2 de la même nature et affiche
      - 2 nombre de nature 'm'
      -1 nombre de nature 'c'
      je veux qu'il affiche 3 avec la valeur 'c'
      merci de votre aide
  2. Modérateur
    Tu peux utiliser une sous requête. A mon avis ça sera le plus simple.
    Un truc du genre :

    
    SELECT T1.NATURE
                , COUNT(T1.N_s) as NB
    FROM (
      SELECT N_s
                 , CASE nature 
                    WHEN 'c' THEN c
                    WHEN 'm' THEN c
                    ELSE nature
                    END  as NATURE              
      FROM accident
    ) T1
    GROUP BY   NATURE; 
    

    1. ça fonctionne merci infiniment