2015-05-08 45 views
0

我有一個報告與2日期參數和2個參數:@ConstitID@BatchID,都允許NullSSRS報告與第二參數,允許空不工作

該報告按預期工作,直到我添加第二個參數@BatchID

問:有人可以解釋我在下面的代碼中缺少的東西嗎?我將尋找添加額外的參數,將允許Null,並需要清楚地瞭解如何添加允許Null的其他參數。

WHERE (p_memb_fee_batch_pmt_dst.fee_gl_number IN (@FeeGL_Number)) 
AND (p_memb_fee_batch_header.fin_tran_date BETWEEN @TransactionDateStart AND @TransactionDateEnd) 
AND (p_memb_fee_batch_payment.constit_id = @ConstitID) 
AND (p_memb_fee_batch_payment.batch_id = @BatchID) OR (p_memb_fee_batch_pmt_dst.fee_gl_number IN (@FeeGL_Number)) 
AND (p_memb_fee_batch_header.fin_tran_date BETWEEN @TransactionDateStart AND @TransactionDateEnd) 
AND (@ConstitID IS NULL) OR (p_memb_fee_batch_payment.constit_id IS NULL) 
AND (p_memb_fee_batch_payment.batch_id IS NULL) OR (@BatchID IS NULL) 
ORDER BY p_memb_fee_batch_pmt_dst.fee_gl_number 

回答

0

我實際上是能夠通過刪除我曾在基於參數SSRS設置了2個過濾器來解決問題@BatchID和@ConstitID。然後我按如下方式整理了代碼,報告按預期工作。 (我試圖首先發表評論,因爲我很想知道是否有更高效的編碼解決方案。

WHERE (p_memb_fee_batch_pmt_dst.fee_gl_number IN (@FeeGL_Number)) 
AND (p_memb_fee_batch_header.fin_tran_date BETWEEN @TransactionDateStart  
AND @TransactionDateEnd) 
AND (p_memb_fee_batch_payment.constit_id = @ConstitID) 
AND (p_memb_fee_batch_payment.batch_id = @BatchID) OR (p_memb_fee_batch_pmt_dst.fee_gl_number IN (@FeeGL_Number)) 
AND (p_memb_fee_batch_header.fin_tran_date BETWEEN @TransactionDateStart AND @TransactionDateEnd) 
AND (p_memb_fee_batch_payment.batch_id = @BatchID) 
AND (@ConstitID IS NULL) OR (p_memb_fee_batch_pmt_dst.fee_gl_number IN (@FeeGL_Number)) 
AND (p_memb_fee_batch_header.fin_tran_date BETWEEN @TransactionDateStart AND @TransactionDateEnd) 
AND (p_memb_fee_batch_payment.constit_id = @ConstitID) 
AND (@BatchID IS NULL) OR (p_memb_fee_batch_pmt_dst.fee_gl_number IN (@FeeGL_Number)) 
AND (p_memb_fee_batch_header.fin_tran_date BETWEEN @TransactionDateStart AND @TransactionDateEnd) 
AND (@ConstitID IS NULL) 
AND (@BatchID IS NULL) 
ORDER BY p_memb_fee_batch_pmt_dst.fee_gl_number