Aide d'amélioration une requette mysql [Résolu]

Signaler
Messages postés
63
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
1 avril 2018
-
Messages postés
63
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
1 avril 2018
-
salut les amis
je voudrais extraire des donnée dans un base de donnée qui contient un table nommée emprunte qui contient un champs jours et un champs mois et un champs année je reussi a concatener les trois champs avec se code:
concat('t_emprunte'.'emp_jour','jours',' et','t_emprunte'.'emp_mois','mois',' et','t_affaire'.'aff_annee','annee' ) as duree_emprunt
le resultat = 0jours et 3mois et 0annee

est ce qu'il ya une possibilité d'ameliorer ce code pour qu'il ignore les champs null ou contient 0 pour quil affiche = 3mois au lieu (0jours et 3mois et 0annee)
j'ai essayer d integrer la fonction if(, ,) mais je ne sais pas comment
et merci beaucoup mes freres
--

2 réponses

Messages postés
32944
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
351
Bonjour,

Il existe plusieurs façons de réaliser des tests conditionnels.
par exemple le Case WHEN
http://sql.sh/cours/case

Messages postés
63
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
1 avril 2018
1
merci jordane
le problème a été résolu avec case
select * ,
case 
      when 't_emprunte'.'emp_jour' = 0  and't_emprunte'.'emp_annee' <> 0 then   concat('t_emprunte'.'emp_mois','et',' mois',''t_emprunte''.'emp_annee',' annee' ) 
          when ...............then.........
             .....
 else........
end 
'duree emprunt',
.........

;) @+


EDIT : Ajout des balises de code.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code