convert_after_mssql.sql
1.36 KB
declare @defaultBusinessUnit int
set @defaultBusinessUnit = (
select min(Id)
from Sungero_Core_Recipient
where Discriminator = 'EFF95720-181F-4F7D-892D-DEC034C7B2AB' --Дискриминатор для типа Business unit
and [Status] = 'Active'
)
if (@defaultBusinessUnit is not null)
begin
;with Departments_CTE as
(
select Id, Name, HeadOffice_Company_Sungero, BusinessUnit_Company_Sungero
from Sungero_Core_Recipient
where HeadOffice_Company_Sungero is null
and Discriminator = '61B1C19F-26E2-49A5-B3D3-0D3618151E12' --Дискриминатор для типа Department
union all
select Recipient.Id, Recipient.Name, Recipient.HeadOffice_Company_Sungero,
isnull(Recipient.BusinessUnit_Company_Sungero, Dep.BusinessUnit_Company_Sungero)
from Sungero_Core_Recipient as Recipient
inner join Departments_CTE as Dep on Recipient.HeadOffice_Company_Sungero = Dep.Id
where Recipient.HeadOffice_Company_Sungero is not null
and Discriminator = '61B1C19F-26E2-49A5-B3D3-0D3618151E12' --Дискриминатор для типа Department
)
update Cases
set BusinessUnit = isnull(Dep.BusinessUnit_Company_Sungero, @defaultBusinessUnit)
from Sungero_Docflow_CaseFile Cases
left join Departments_CTE Dep on Cases.Department = Dep.Id
where Cases.BusinessUnit is null
end