2012-03-13 78 views
0

如果「Field_name」小於「Date」,我有一個簡單的代碼 diesplay'Y'else'N',我不確定水晶爲什麼忽略條件只有似乎顯示else部分,我讓所有的「N的,即使有應該是」 Y的沒有任何人有這個問題碰到過,請幫助!Crystal Report XI簡單如果然後else語句不工作

代碼:。

(case when ((select Distinct y.szrclin_pidm 
      from szrclin y 
      where szrclin_start_date < '01-JAN-2011' 
      and y.szrclin_pidm = spriden_pidm) is not null) 
      then 'Y' 
      else 'N' 
     end) "Prior Rotations" 
+0

我建議你重新寫這個問題。因爲它看起來這似乎是一個SQL問題,而不是一個水晶報告問題。在代碼中也使用一些格式 – 2012-03-13 14:27:42

回答

0

您在Crystal Reports上下文中的代碼沒有多大意義,我的建議是使用一個簡單的公式代替

if {szrclin.szrclin_start_date} < date(2011,01,01) and {szrclin.szrclin_pidm} = szrclin.spriden.pidm} then 'Y' else 'N'

如果szrclin表是在您的報告,我看不出有任何理由使用SQL表達式這樣的事情。

0

您可能確實在Crystal Reports中嵌入了'原始'SQL:作爲SQL表達式字段(返回標量值)或使用Command(返回記錄集)。使用一個排除了另一個的使用。在這種情況下,我會建議一個SQL表達式。我猜測你正在嘗試做什麼,但是你需要驗證它。

(
SELECT count(spriden_pidm) 
FROM szrclin y 
WHERE szrclin_start_date < '01-JAN-2011' 
//correlate to 'main' query 
AND y.szrclin_pidm = spriden_pidm 
GROUP BY spriden_pidm 
)