GetShopsListByCompanies.sql

56 lines | 1.106 kB Blame History Raw Download

set noexec off
go
if object_id('GetShopsListByCompanies') is not null
begin
	set noexec on
end	
go
-- создаем пустой объект
-- необходимо указать название процедуры
create procedure dbo.GetShopsListByCompanies as
raiserror ('Объект пустой. Ошибка при создаении объекта', -- Message text.
				16, -- Severity.
				1 -- State.
			);
go
set noexec off
go
alter procedure dbo.GetShopsListByCompanies
(
	@CompaniesList varchar(max)
)
as 
begin

--declare @CompaniesList as varchar(max)

--set @CompaniesList = '1, 2'	
	
	declare @CompaniesTable table (CompanyID int index IX_CompaniesTable_CompanyID nonclustered (CompanyID))
	
	if isnull(@CompaniesList,'') <> ''
	begin
		insert into @CompaniesTable
			select
				Convert(int,Value)
			from STRING_SPLIT(@CompaniesList, ',')
	end

	select 
		s.Id,
		
		case 
			when isnull(s.Name,'') = '' 
				 then '(ShopId = ' + convert(nvarchar(16), s.Id) + ')' 
			 else s.Name 
		end as Name

	from dbo.Shops s with (nolock)
		inner join @CompaniesTable ct on ct.CompanyID = s.CompanyId
		inner join dbo.Terminals t with (nolock) on 
				t.ShopId = s.Id
			and isnull(t.HostName, '') <> ''

	
end