2013-03-11 63 views
1

我使用asp.net動態數據來顯示我在sql server數據庫中的幾個表的內容,它非常酷。除此之外,我正在努力做另一件事。asp.net動態數據過濾視圖

說有一個表

CustomerComplaints 
    - some fields 
    - CustomerName 
    - ComplaintType 
    - ComplaintDate 
    - other fields 

我要顯示與頂視圖抱怨客戶

所以我創建了一個視圖

select CustomerName, count(*) ComplaintCount from CustomerComplaints group by CustomerName 

,但我也希望能夠傳遞可選的AfterDateBeforeDate以在ComplaintDate上進行過濾以執行我的熱門相關客戶視圖。

什麼是一個很好的方式去做到這一點,而不創建一個非常具體的這個問題的頁面?

感謝

回答

1

您可以將參數傳遞到您的查詢和使用:

SELECT CustomerName, count(*) ComplaintCount 
FROM CustomerComplaints 
WHERE ComplaintDate BETWEEN @AfterDate AND @BeforeDate 
GROUP BY CustomerName 

然後這些參數作爲任何最小值和最大值是該列的數據類型(如果它設置默認值datetime2,該值將是0001-01-019999-12-31)。這樣,如果你不明確傳遞參數,默認值根本不會過濾你的結果。