1

我使用 asp.net 动态数据来显示我在 sql server 数据库中的几个表的内容,这非常酷。除此之外,我正在尝试做另一件事。

说有一张桌子

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

我想向最常抱怨的客户展示一个视图

所以我创建了一个视图

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

但我也希望能够传入一个可选参数AfterDateBeforeDate在 ComplaintDate 上进行过滤以执行我的 Top Compalining Customer 视图。

在不为这个问题创建一个非常具体的页面的情况下,有什么好方法可以做到这一点?

谢谢

4

1 回答 1

1

您可以将参数传递给您的查询并使用它:

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

然后将这些参数的默认值设置为该列的数据类型的最小值和最大值(如果是datetime2,则值为0001-01-01and 9999-12-31)。这样,如果您不显式传递参数,则默认值根本不会过滤您的结果。

于 2013-03-11T17:40:53.637 回答