索引视图和T-SQL在SQL Server 2008 R2中给出的结果与众不同
-
11-10-2019 - |
题
我想创建索引视图 我的观点 使用这样的T-SQL
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工作正常,并允许在 我的观点.
问题是那张桌子 ThemeWorkplace
包含几个记录 Theme_ID
。甚至我都使用 GROUP BY
- 我进来 Object_Count
值得那个
等于:(真实 Object_Count
值) *计数(Theme_ID
在 ThemeWorkplace
).
我不能使用 DISTINCT
T-SQL中的单词,因为在这种情况下,不可能在视图上创建索引。
在我看来,有什么建议是获得正确的结果?
解决方案
正如您所指出的那样,创建索引视图存在重大限制。禁止在这里为您提供帮助的技术,例如独特或子查询。我认为在这种特殊情况下,您需要牺牲实现观点。
不隶属于 StackOverflow