Aide d'amélioration une requette mysql

Résolu
cs_jolicoeur79 Messages postés 62 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 1 avril 2018 - 24 juin 2014 à 00:07
cs_jolicoeur79 Messages postés 62 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 1 avril 2018 - 18 sept. 2014 à 15:19
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

jordane45 Messages postés 37864 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 7 décembre 2023 343
24 juin 2014 à 09:50
Bonjour,

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

0
cs_jolicoeur79 Messages postés 62 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 1 avril 2018 1
Modifié par jordane45 le 18/09/2014 à 15:33
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
0
Rejoignez-nous