在DataWarehouse(SQL Server 2012(和某些表中,我想实现一个选项,其中某些用户只能看到最新的行(日期或标志(而不是整个历史记录。这可能吗?
VIEWs将是一个很好的用例...像这样的东西,使用窗口函数来查找"最新"记录。您还可以在具有内部联接的dateColumn
上使用MAX()
。只需填写分区部分<column1, column2>
您想要对数据进行分组的内容。这是这方面的文档。
create view myView
as
;with cte as(
select
primaryKey
,column2
,dateColumn
,RN = row_number over (partition by <column1, column2> order by dateColumn desc)
from
YourTable)
select
primaryKey
,column2
,dateColumn
from cte
where RN = 1
然后,对于您只想看到此数据的用户...您将明确授予他们查看权限。
grant select on myView to MyUserGroup