2010-04-09 321 views
0

我需要生成一個報告,用戶可以選擇單選按鈕中的所有問題,已解決問題或已解決的問題。在我看來,我有一個isClosed位列。如果我沒有在所有問題單選框,我正做的事:SQL Where子句基於另一個參數的條件賦值

SELECT * 
FROM MyView 
WHERE isClosed = @ViewClosedRecords 

但是我需要刪除isClosed = @ViewClosedRecords條件時@ViewAllRecords = true。我將如何做到這一點?

+0

嫌頭。顯然是那些日子之一。 – jamone 2010-04-09 13:33:46

回答

3
SELECT * 
FROM MyView 
WHERE @ViewAllRecords OR isClosed = @ViewClosedRecords 

善良,

+0

我嘗試這個和查詢生成器說:「無效的列名稱真正」,然後它將其更改爲「(isClosed = @ViewClosedRecords)或 (ProjectID = @RequestedProjectID)AND (true = @ViewAllRecords)'但仍然錯誤。 – jamone 2010-04-09 13:53:19

+0

編輯一點..再試一次 – 2010-04-09 13:55:34

1
select * 
from MyView 
WHERE isClosed = @ViewClosedRecords 
OR @ViewAllRecords 

並設置@ViewAllRecords參數爲true,當用戶在單選按鈕選擇 「所有問題」。

1
WHERE 
(@ViewAllRecords = false AND isClosed = @ViewClosedRecords) 
OR 
(@ViewAllRecords = true) 
1

以下將給你帶isClosed = @ViewClosedRecords的所有行。如果@ViewAllRecords = true那麼它將返回所有行並忽略isClosed

SELECT * 
FROM MyView 
WHERE isClosed = @ViewClosedRecords 
    OR @ViewAllRecords = true 
+0

由於某種原因,它不等於真正的布爾值,但是在我將它設置爲一個字符串並且確實='true'的情況下,它可以工作。 – jamone 2010-04-09 14:02:01

1
WHERE (@ViewAllRecords <> true AND isClosed = @ViewClosedRecords)