问题
如何从具有我的孩子代码值而没有parentcodevalue的表交易代码中删除行?
基于表的表交易代码上存在parentcodevalue和childcodevalue
MappingCodeValue父代码值和子代码值。
所以我需要从交易代码表中删除没有parentcodevalue的记录
基于表映射代码值的表交易代码
所以根据我的解释,交易代码表上的两行5,6将被删除
TradeCodeId PartId CodeType CodeValue
5 1444 ECCS-URB AB666-URB
6 1931 ECCS-URB AB778-URB
5和6是子代码值,并且没有作为AB666-US和AB778-US的父代码值行
所以错了,我会删除它
但是交易代码上的其他行具有父代码值和子代码值
根据表的mappingcodevalue,以便它是正确的
所以如何写查询删除具有childcodevalue而不具有的代码行
交易代码中的父代码值
基于值存在于mappingcodevalue上
drop table #MappingCodeValue
drop table #TradeCode
create table #MappingCodeValue
(
id int identity (1,1),
ParentCodeType nvarchar(50),
ParentCodeValue nvarchar(50),
ChildCodeType nvarchar(50),
ChildCodeValue nvarchar(50)
)
INSERT INTO #MappingCodeValue
(ParentCodeType,ParentCodeValue,ChildCodeType,ChildCodeValue)
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','AB778-US','ECCS-URB','AB778-URB')
CREATE TABLE #TradeCode
(
TradeCodeId int identity(1,1),
PartId int,
CodeType nvarchar(50),
CodeValue nvarchar(50)
)
insert into #TradeCode(PartId,CodeType,CodeValue)VALUES
(1222,'ECCS-US','AB123-US'),
(1255,'ECCS-US','AB555-US'),
(1222,'ECCS-URB','AB123-URB'),
(1255,'ECCS-URB','AB555-URB'),
(1444,'ECCS-URB','AB666-URB'),
(1931,'ECCS-URB','AB778-URB')
我尝试什么
delete t from #tradecode t
left join #mappingcodevalue pn on t.CodeValue=pn.ParentCodeValue and t.CodeType=pn.ParentCodeType
where t.CodeValue is null