索引视图和T-sql,它们与SQL Server 2008 R2中的DISTINCT具有相同的结果

我想用这样的t-sql创建索引视图MyView
Select 
    o.Theme_ID as Theme_ID,
    DATEADD(day, DATEDIFF(day, 0, o.Object_CreationDate), 0) as Objext_CreationDate,
    Count_BIG(*) as ObjectCount,   o.Object_Tonality from [dbo].Object o
inner join [dbo].Theme t on o.Theme_ID = t.Theme_ID
inner join [dbo].[ThemeWorkplace] tw on t.Theme_ID = tw.Theme_ID
inner join [dbo].Workplace w on w.Workplace_ID = tw.Workplace_ID
 ... where t.Theme_DeletedMark = 0
 AND (w.Workplace_AccessType = 1 OR w.Workplace_AccessType = 8)
 AND Object_DeletedMark = 0 ...
 Group BY o.Theme_ID,o.Object_Tonality, DATEADD(day, DATEDIFF(day, 0, o.Object_CreationDate), 0)
这个t-sql工作正常,允许在MyView上设置聚簇索引。 问题是表
ThemeWorkplace
包含几个具有相同
Theme_ID
的记录。 甚至我使用
GROUP BY
- 我得到
Object_Count
值 等于:(真实
Object_Count
值)*计数(
Theme_ID
in
ThemeWorkplace
)。 我不能在t-sql中使用
DISTINCT
字,因为在这种情况下,无法在视图上创建索引。 在我看来,有什么建议可以得到正确的结果?     
已邀请:
如您所述,创建索引视图存在重大限制。禁止在此处使用的技术,例如distinct或子查询。我认为你需要牺牲在这种特殊情况下实现视图。     

要回复问题请先登录注册