是否可以在视图中添加“check if if previous”列?

时间:2012-03-26 10:58:04

标签: sql sql-server-2008 reporting-services reportbuilder

我在SQL Server 2008中有一个视图,我想用于SSRS 2008中的报告。

主要问题是我必须在一个表中使用两个不同的数据集,而不能按我的意愿进行分组。两个数据集都来自此视图。让我们在我的报告表的一栏中说我要总结我国所有学校建筑的所有计算机。在另一栏中,每台计算机学校的学生比例。

现在,在DB中有两个不同的表,一个用于建筑物,一个用于学校(因为有时一个学校或其他类似场景有不同的建筑物)。加入他们会导致建筑学校的数量超过计算机总和所需的数量,这将导致同一建筑物的不同时间相加(如果该建筑物中有多个学校运营)。

表格如下:

enter image description here

为了避免这种情况,我已经完成了这两个数据集,一个来自建筑的观点,一个来自学校的观点。但这些是一个表中的两个数据集!为了解决我的问题,我想在我的视图中添加一个特殊的列:它会自动检查结果表中是否显示两次或更多BUILDING_ID,f.e。像这样:

enter image description here

问题在于我不知道这是否可能,如果可能,我不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

也许这可以给你一个提示:

select building_id, 
row_number() over (partition by building_id order by newid()) - 1 check_if_previous
from yourtable

如果您只想要1或0

select building_id, 
cast(row_number() over (partition by building_id order by newid()) - 1 as BIT) check_if_previous
from yourtable