UFN_MKTSOURCECODE_GETCODEFORPART
Returns the code for the specified part from the full source code.
Return
Return Type |
---|
nvarchar(10) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SOURCECODEID | uniqueidentifier | IN | |
@SOURCECODE | nvarchar(50) | IN | |
@ITEMTYPECODE | tinyint | IN |
Definition
Copy
CREATE function dbo.[UFN_MKTSOURCECODE_GETCODEFORPART]
(
@SOURCECODEID uniqueidentifier,
@SOURCECODE nvarchar(50),
@ITEMTYPECODE tinyint
)
returns nvarchar(10)
as
begin
declare @START int;
declare @LENGTH int;
select
@START = (select isnull(sum([T].[LENGTH] + [T].[DELIMLENGTH]), 0) + 1
from (
select distinct [SCI].[SEQUENCE], [SCI].[LENGTH], len([SCPDV].[DELIM]) as [DELIMLENGTH]
from dbo.[MKTSOURCECODEITEM] as [SCI]
inner join dbo.[MKTSOURCECODEPARTDEFINITIONVALUES] as [SCPDV] on [SCPDV].[MKTSOURCECODEPARTDEFINITIONID] = [SCI].[MKTSOURCECODEPARTDEFINITIONID]
inner join dbo.[MKTSOURCECODEVALIDPARTVALUES] as [SCVPV] on [SCVPV].[MKTSOURCECODEPARTDEFINITIONVALUESID] = [SCPDV].[ID] and [SCVPV].[MKTSOURCECODEITEMID] = [SCI].[ID]
where [SCI].[SOURCECODEID] = [MKTSOURCECODEITEM].[SOURCECODEID]
and [SCI].[SEQUENCE] < [MKTSOURCECODEITEM].[SEQUENCE]
) as [T]),
@LENGTH = [MKTSOURCECODEITEM].[LENGTH]
from dbo.[MKTSOURCECODEITEM]
inner join dbo.[MKTSOURCECODEPARTDEFINITION] on [MKTSOURCECODEPARTDEFINITION].[ID] = [MKTSOURCECODEITEM].[MKTSOURCECODEPARTDEFINITIONID]
where [MKTSOURCECODEITEM].[SOURCECODEID] = @SOURCECODEID
and [MKTSOURCECODEPARTDEFINITION].[ITEMTYPECODE] = @ITEMTYPECODE;
return substring(@SOURCECODE, @START, @LENGTH);
end