Можно ли добавить столбец «проверить, если предыдущий» в представление? - PullRequest
1 голос
/ 26 марта 2012

У меня есть представление в SQL Server 2008, которое я хочу использовать для отчета в SSRS 2008.

Основная проблема заключается в том, что мне приходится использовать два разных набора данных в одной таблице, и я не могу выполнить группировку, поскольку яхочу это.Оба набора данных исходят из этого представления.Допустим, в одной колонке моей таблицы отчетов я хочу суммировать все компьютеры всех школьных зданий моей страны.Во втором столбце - соотношение учащихся школ на один компьютер.

Теперь в БД есть две разные таблицы: одна для зданий и одна для школ (потому что иногда для одной школы или для других похожих сценариев существуют разные здания),Присоединение к ним приводит к большему количеству школ-пар, чем необходимо для столбца компьютерных сумм, в результате будет суммироваться разное время для одного и того же здания (если в этом здании работает более одной школы).

enter image description here

Чтобы избежать этого, я сделал эти два набора данных, один с точки зрения здания, а другой с точки зрения школы.Но это два набора данных в одной таблице!Чтобы решить мою проблему, я подумал добавить специальный столбец в мое представление: он автоматически проверяет, отображается ли BUILDING_ID дважды или более в таблице результатов, например:

enter image description here

Проблема в том, что я не знаю, возможно ли это, и если это так, я не знаю, как это сделать.

1 Ответ

2 голосов
/ 26 марта 2012

Может быть, это может дать вам подсказку:

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
...