创建摘要视图

sql database

40 观看

1回复

602 作者的声誉

我有一张问题表。问题可以是高优先级,低优先级,开放/已回答。创建摘要的最佳方法是什么。我应该使用视图还是几个存储过程?

表格示例:

CREATE TABLE [dbo].[question] (
    [Id]            INT          NOT NULL,
    [Priority]      INT          NOT NULL,
    [State]         INT          NOT NULL)

我认为创建一个包含4列的视图是最好的:OpenQuestionHighPriority,OpenQuestionLowPriority,ClosedQuestionHighPriority,ClosedQuestionLowPriority。

想知道如何做到这一点或其他建议。

作者: Icerman 的来源 发布者: 2011 年 9 月 6 日

回应 (1)


1

196306 作者的声誉

决定

您可以使用以下命令查询case

select  sum(case when priority = 1 and state = 1 then 1 end) 
            as OpenQuestionHighPriority
,       sum(case when priority = 1 and state = 2 then 1 end) 
            as ClosedQuestionHighPriority
....
from    dbo.question

您可以将此查询存储在视图,过程中,或将其作为ad-hoc SQL执行。它将以任何一种形式工作。

作者: Andomar 发布者: 06.09.2011 06:06
32x32