problem
if record exist on trade code table update partlevel from 1 to 0 ?
the code below insert new record on trade code for codetypeto and codevalueto if not exist on table tradecode
i need to modify code below if codevalueto and code typeto both exist on table tradecode
then update partlevel from 1 to 0 to codetypeto and codevalueto on tradecode table that already exist
else
insert record on tradecode table to codetypeto and codevalueto that not exist
- create table #MappingCodeValue
- (
- id int identity (1,1),
- CodeTypeFrom nvarchar(50),
- CodeValueFrom nvarchar(50),
- CodeTypeTo nvarchar(50),
- CodeValueTo nvarchar(50)
- )
- INSERT INTO #MappingCodeValue
- (CodeTypeFrom,CodeValueFrom,CodeTypeTo,CodeValueTo)
- VALUES
- ('ECCS-US','AB123-US','ECCS-URB','AB123-URB'),
- ('ECCS-US','AB555-US','ECCS-URB','AB555-URB'),
- ('ECCS-US','AB666-US','ECCS-URB','AB666-URB'),
- ('ECCS-US','AB756-US','ECCS-URB','AB778-URB')
-
-
- CREATE TABLE #TradeCode
- (
- TradeCodeId int identity(1,1),
- PartId int,
- Partlevel int,
- CodeType nvarchar(50),
- CodeValue nvarchar(50)
- )
- insert into #TradeCode(PartId,Partlevel,CodeType,CodeValue)VALUES
- (1222,1,'ECCS-US','AB123-US'),
- (1255,1,'ECCS-US','AB555-US'),
- (1444,1,'ECCS-US','AB666-US'),
- (1931,1,'ECCS-US','AB756-US')
-
- insert into #TradeCode
- select c.PartId, c.Partlevel, c.CodeType, m.CodeValueTo
- from #MappingCodeValue as m
- inner join #TradeCode as c on c.CodeType = m.CodeTypeFrom and c.CodeValue = m.CodeValueFrom
- where not exists( select * from #TradeCode where CodeType = c.CodeType and CodeValue = m.CodeValueTo)
- Select * from #TradeCode
Expected Result
- TradeCodeId PartId Partlevel CodeType CodeValue
- 1 1222 1 ECCS-US AB123-US
- 2 1255 1 ECCS-US AB555-US
- 3 1444 1 ECCS-US AB666-US
- 4 1931 1 ECCS-US AB756-US
- 5 1222 0 ECCS-URB AB123-URB
- 6 1255 0 ECCS-URB AB555-URB
- 7 1444 0 ECCS-URB AB666-URB
- 8 1931 0 ECCS-URB AB778-URB