我有一张临时表#TempJoinTable
此临时表中有两个字段PRODUCT_FAM_ID
和PRODUCT_ID
,还有另外两个字段MANDATORY_CD
和DISPLAY_CD
。
基本上,我有一个存储在另一个临时表中的产品列表。其中一个product_fam_id / product_id组合已经过全面测试,因此此产品组合的行和记录(例如'591'/'103')应与我在'要检查的产品中存储的其他组合完全相同'诱惑力。唯一不同的是product_fam_id和product_id值,当然
所以我尝试了以下内容,但我对SQL很新,有点卡住了。欢迎任何建议
create table #TempProductsToCheck
(
ProductFamilyID char(10) NULL,
ProductID char(10) NULL
)
insert into #TempProductsToCheck (ProductFamilyID, ProductID) values
('591', '98'),
('591', '99'),
('591', '101'),
('591', '102'),
('502', '101'),
('502', '102'),
('591', '100'),
('591', '103'),
('502', '103')
主#TempJoinTable包含产品字段,mandatory_cd和display_cd
select distinct *
from #TempJoinTable
where (product_family_id, product_id) in (select product_family_id, product_id
from #TempProductsToCheck)
and where exists (select distinct MANDATORY_CD, DISPLAY_CD
from #TempJoinTable)
except
select distinct *
from #TempJoinTable
where (product_family_id, product_id) in ('591', '103')
and where exists (select distinct MANDATORY_CD, DISPLAY_CD
from #TempJoinTable)
我认为如果我只想返回mandatory_cd和display_cd字段,这可以很容易地完成,但我想从#TempJoinTable(其他2个产品字段)返回所有字段。
我知道存在位的位置是错误的,但我无法弄清楚还有哪些选项可以尝试