2013-01-17 15 views
0

任何人都可以說下面的語句有什麼問題。這種情況下的錯誤是什麼......何時發表聲明?

目前我在IBM Cognos 10.1.1

case  
    when extract(month,_last_of_month (current_date))=1 then ('January') 
    when extract(month,_last_of_month (current_date))=2 then ('January','February') 
end 

我工作我不能改正它。

錯誤代碼是QE-DEF-0459 cclexception解析錯誤

+0

@JW,qe-def-0459 cclexception解析錯誤 – arunpandiyarajhen

+0

如果我理解你的邏輯正確地說,我認爲你的意思是在第二種情況下只返回'二月份',而不是'一月份'和'二月份',對嗎?這給出了一個錯誤,因爲它應該只返回一個「THEN」值。 – BeemerGuy

+0

這是什麼'_last_of_month'? –

回答

1

它應該只返回一個值,

case 
    when extract(month,_last_of_month(current_date)) = 1 then 'January' 
    when extract(month,_last_of_month(current_date)) = 2 then 'January, February' 
end 
+0

非常感謝JW,但我希望在單獨的一行中有2月份。你能幫忙嗎? – arunpandiyarajhen

+0

發佈整個查詢 – WKordos

+0

@WKordos我在cognos中使用它。這就像一個條件。 – arunpandiyarajhen

1

我也相信在Cognos所有Case語句必須有還有其他條件。我沒有在我面前的Cognos,不能記住你正在使用的功能的語法,但它看起來不錯。

我還記得在某些版本的Cognos中,您必須將eval表達式轉換爲與返回類型相同的含義,因爲您要返回文本而不是expr = 1,您必須Cast(expre,varchar)= Cast( 1,varchar)---不知道這是在10的情況下,但它有時最近導致的問題有時最近8.3和8.4

相關問題