2012-03-26 104 views
1

我在SQL Server 2008中的觀點,我想在SSRS 2008年是否可以在視圖中添加「檢查以前」列?

要用於報告的主要問題是,我有一個表中使用兩個不同的數據集,因爲我想它不能做分組。這兩個數據集都來自這個觀點。比方說,在我的報告表的一列中,我想對我國所有學校建築物的所有計算機進行求和。在另一欄中,每個電腦的學校學生比例。

現在,在數據庫有兩個不同的表一爲建築物和一個用於學校(因爲有時有一個學校或其他類似的場景不同的建築)。加入他們將導致更多的夫婦在校舍內學習計算機總數列,這將導致同一建築物的不同時間相加(如果該建築物中有多個學校在運行)。

表是這樣的:

enter image description here

爲了避免這種情況我已經做了這兩個數據集,單從建設點,單從學校的角度。但是這些是兩張數據集在一張桌子上!爲了解決我的問題,我曾想過在我的視圖中添加一個特殊的列:它會自動檢查在結果表f.e中是否顯示了兩次或更多次BUILDING_ID。像這樣:

enter image description here

的問題是,我不知道這是可能的,如果是這樣,我不知道該怎麼做。

+1

你如何定義一個以前的專欄中,我看不出有任何標識,也沒有時間戳 – 2012-03-26 11:02:32

+0

這就是我不知道。如何識別以前的BUILDING_ID。 – Hari 2012-03-26 11:05:10

回答

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 
+0

這真棒!它完全符合我的需求。非常感謝您的答覆! – Hari 2012-03-26 11:31:00

+0

我在另一視圖(爲另一報告)來實現這一點,但像這樣:'ROW_NUMBER()OVER(PARTITION BY FOLDERS.SERIAL,SCHOOLS.SCHOOL_NAME ORDER BY NEWID()) - 1個CHECK_IF_PREVIOUS_SCHOOL'.A文件夾是的位置學校,所以有一些學校在不同的地方工作,這些都算作不同的學校(一所學校--->兩個位置=兩所學校),但我每次執行視圖時間/查詢它給了我CHECK_IF_PREVIOUS_SCHOOL不同的計數= 0。 – Hari 2012-03-26 13:17:55

+0

@哈里是的,第一個是隨機的。正如我前面問到的那樣:您如何定義前一列。由於您沒有定義排序順序。我選了一個隨機訂單。我意識到這可能是一個問題。但是你沒有爲我的訂單提供專欄。 – 2012-03-26 13:36:00

相關問題