我使用asp.net动态数据来显示我在sql server数据库中的几个表的内容,这很酷。除此之外,我正在尝试做另外一件事。
说有一张桌子
CustomerComplaints
- some fields
- CustomerName
- ComplaintType
- ComplaintDate
- other fields
我想显示顶级投诉客户的观点
所以我创建了一个视图
select CustomerName, count(*) ComplaintCount from CustomerComplaints group by CustomerName
但我也希望能够传递一个可选的AfterDate
和BeforeDate
来过滤ComplaintDate以执行我的顶级Compalining客户视图。
如果不创建针对此问题的页面,有什么好的方法可以做到这一点?
由于
答案 0 :(得分:1)
您可以将参数传递给查询并使用它:
SELECT CustomerName, count(*) ComplaintCount
FROM CustomerComplaints
WHERE ComplaintDate BETWEEN @AfterDate AND @BeforeDate
GROUP BY CustomerName
然后将这些参数的默认值设置为该列的数据类型的最小值和最大值(如果它是datetime2
,则值为0001-01-01
和9999-12-31
)。这样,如果您未明确传递参数,则默认值将不会过滤您的结果。