我有一张问题表。问题可以是高优先级,低优先级,开放/已回答。创建摘要的最佳方法是什么。我应该使用视图还是几个存储过程?
表示例:
CREATE TABLE [dbo].[question] (
[Id] INT NOT NULL,
[Priority] INT NOT NULL,
[State] INT NOT NULL)
我认为创建一个包含4列的视图是最好的:OpenQuestionHighPriority,OpenQuestionLowPriority,ClosedQuestionHighPriority,ClosedQuestionLowPriority。
想知道如何做到这一点或其他建议。
答案 0 :(得分:1)
您可以使用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执行。它将以任何一种形式工作。