---- GetSubStationUnomID ----
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetSubStationUnomID]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[GetSubStationUnomID]
GO
create function GetSubStationUnomID(@SubStationID integer)
returns Integer
as
begin
  declare @res as Integer
  set @res = NULL
  declare @SUnomID as Integer
  declare @DDUnomID as Integer
  declare @SSUnomID as Integer
  select @DDUnomID = min(Код_класса_напряжения) from РУ inner join объект on Код_РУ = Код_объекта where Код_типа_объекта = 50 and Код_объекта_владельца = @SubStationID
  select @SSUnomID = min(Код_класса_напряжения) from Секция inner join объект on Код_секции = Код_объекта where (Код_типа_объекта = 53  or Код_типа_объекта = 54) and Код_объекта_владельца = @SubStationID
  select @SUnomID = min(Код_класса_напряжения) from Секция inner join объект Об1 on Код_секции = Об1.Код_объекта
    inner join Объект Об2 on Об1.Код_объекта_владельца = Об2.Код_объекта
    where Об2.Код_типа_объекта=50 and Об2.Код_объекта_владельца = @SubStationID
  if @SUnomID is NULL set @SUnomID = 100
  if @DDUnomID is NULL set @DDUnomID = 100
  if @SSUnomID is NULL set @SSUnomID = 100

  if @SUnomID < @SSUnomID
    if @SUnomID < @DDUnomID set @res = @SUnomID
    else set @res = @DDUnomID
  else
    if @SSUnomID < @DDUnomID set @res = @SSUnomID
    else set @res = @DDUnomID
  return @res
end
