2012-09-24 104 views
1

在我的查詢設計器中,我嘗試使用下面的查詢:SSRS IIF語法

SELECT  Site, LegalConfigNumber, COUNT(*) AS Total 
FROM   EPSInfoLive 
iif(@LegalConfigNum = 0, 
WHERE  (InputDate >= @rundate) AND (InputDate <= DATEADD(day, 1, @rundate)), 
WHERE  (InputDate >= @rundate) AND (InputDate <= DATEADD(day, 1, @rundate)) AND LegalConfigNumber = @LegalConfigNum) 
GROUP BY LegalConfigNumber, Site 
ORDER BY Site, LegalConfigNumber 

當我嘗試測試它,我得到關於通過@LegalConfigNum語法不正確的消息。 我似乎無法找到那將是什麼。

+1

你甚至可以在查詢中使用這些表達式嗎?以爲你只能在文本框等控件中使用它們 - 而且你需要使用'CASE ... WHEN'語句等查詢... – Jeroen

回答

2

SSRS查詢需要用SQL編寫。您正在使用'@iif'來混合使用SQL和Visual Basic。 SQL支持CASE語句而不是IIF。但是你不需要這些來展示你的內容。以下聲明應該在邏輯上等效:

SELECT 
    Site, 
    LegalConfigNumber, 
    COUNT(*) AS Total 
FROM 
    EPSInfoLive 
WHERE 
    (InputDate >= @rundate) AND (InputDate <= DATEADD(day, 1, @rundate)) 
    AND (LegalConfigNumber = @LegalConfigNum OR @LegalConfigNum = 0) 
GROUP BY LegalConfigNumber, Site 
ORDER BY Site, LegalConfigNumber 
+0

感謝Jaimie案例結構實際上做了我所需要的 –