2010-11-14 13 views
1

J'ai demandeComment faire une condition?

SELECT IF(f.date_term=3,t.quarter*f.date_term ,''), 
     IF(f.date_term=6,t.halfyear*f.date_term,''), 
     IF(f.date_term=12,t.year*f.date_term,'') 

mais cela est pas du travail.

comment faire une condition? J'ai besoin d'une valeur IF (date_term == 3) {select} trimestre SINON SI (date_term == 6) {} .... demi-année

+0

Tout comme un commentaire, pensez à la conception de votre logiciel parce que je pense qu'il est bon de garder votre logique séparée de vos requêtes –

+1

il y a des langues (par exemple L4G) où presque toute la logique est dans les requêtes. :) – AndreKR

Répondre

4

Utilisez un CASE expression:

SELECT CASE f.date_term 
     WHEN 3 THEN t.quarter 
     WHEN 6 THEN t.halfyear 
     WHEN 12 THEN t.year 
     END AS term_interval, 
     ... 

Il n'y a rien pour vous arrêter de faire le calcul en même temps:

SELECT CASE f.date_term 
     WHEN 3 THEN t.quarter * f.date_term 
     WHEN 6 THEN t.halfyear * f.date_term 
     WHEN 12 THEN t.year * f.date_term 
     END AS term_calc, 
     ...