2010-07-06 19 views
9

Bu iç içe seçim deyiminde neyin yanlış olduğunu bilen var mı? Kayıp hakkında şikayet) 'ın ama çalışmıyor neden ben ifadesinin diğer bit)sql iç içe durum bildirimleri

Select 
(CASE WHEN REQUESTS.grade_id = 1 THEN 
     (CASE WHEN ((date_completed-date_submitted)*24*60)<=30 THEN 'Yes' 
      ELSE 'No' 
     END) 
ELSE CASE WHEN REQUESTS.grade_id = 2 THEN 
     (CASE ((date_completed-date_submitted)*24*60) <=120 THEN 'Yes' 
      ELSE 'No' 
     END) 
ELSE CASE WHEN REQUESTS.grade_id = 3 THEN 
    (CASE ((date_completed-date_submitted)*24*60)<=14400 THEN 'Yes' 
      ELSE 'No' 
    END) 
END)in_SLA 

kapalı bırakmış (anlayamıyorum ben sadece It

Select 
     (CASE WHEN REQUESTS.grade_id = 1 THEN 
      (CASE WHEN ((date_completed-date_submitted)*24*60)<=30 THEN 'Yes' 
       ELSE 'No' 
      END) 
     END) in_sla 

yaparsanız iyi çalışıyor!

herhangi bir yardım çok takdir edilir

M

üzgünüm ben iç içe vakalardan whens eksik bir tard

cevap

20

O olmalıdır olma:

Select 
(CASE WHEN REQUESTS.grade_id = 1 THEN 
     (CASE WHEN ((date_completed-date_submitted)*24*60)<=30 THEN 'Yes' 
      ELSE 'No' 
     END) 
     WHEN REQUESTS.grade_id = 2 THEN 
     (CASE ((date_completed-date_submitted)*24*60) <=120 THEN 'Yes' 
      ELSE 'No' 
     END) 
     WHEN REQUESTS.grade_id = 3 THEN 
    (CASE ((date_completed-date_submitted)*24*60)<=14400 THEN 'Yes' 
      ELSE 'No' 
    END) 
END)in_SLA 

yani sadece " Her vaka için "NE ZAMAN" DEĞİL ".

ben basitleştirmek için cazip olacaktır :

Select 
CASE WHEN (REQUESTS.grade_id = 1 AND (date_completed-date_submitted)*24*60 <= 30) 
     OR (REQUESTS.grade_id = 2 AND (date_completed-date_submitted)*24*60 <=120) 
     OR (REQUESTS.grade_id = 3 AND (date_completed-date_submitted)*24*60 <=14400) 
    THEN 'Yes' 
    ELSE 'No' 
END in_SLA 
+2

Veya daha iyi 'VAKA REQUESTS.grade_id ZAMAN 1 THEN ... ZAMAN 2 THEN ... ZAMAN 3 SONRA ... Sonu ' – Guffa

+0

teşekkürler ama bu da işe yaramıyor, Else Case Ne zaman biraz işe yaradıysa, onu işe almak için uğraşmak zorunda kaldım. başka herhangi bir fikir? – matt1234

+1

İç içe geçmiş durumlardan ne zaman kaçırıyorum !! Üzgünüm, tard! – matt1234