34,591
社区成员
发帖
与我相关
我的任务
分享
declare @t1 table(isKey varchar(4),isFields varchar(10),isData varchar(10))
insert @t1
select '0001','A','001' union all
select '0001','B','002' union all
select '0001','C','003' union all
select '0001','D','001' union all
select '0002','C','001' union all
select '0002','F','002' union all
select '0002','D','001' union all
select '0002','B','002'
-----------------------------------------
--逻辑:1、a链接b,iskey一定相等
-- 2、a的条件,并且b的条件
-----------------------------------------
select a.isKey from @t1 as a
join @t1 b on a.isKey=b.isKey --isKey相等
where (a.isFields='A' and a.isData='001') --a条件
and (b.isFields='B' and b.isData='002' ) --b条件
SELECT DISTINCT t.isKey FROM @t1 t
WHERE EXISTS(SELECT 1 FROM @t1 WHERE isKey=t.isKey AND isFields='A' AND isData='001')
AND EXISTS(SELECT 1 FROM @t1 WHERE isKey=t.isKey AND isFields='B' AND isData='002')
select a.* from @t1 a
where a.isFields='A' and a.isData='001'
inner join
(select isKey from @t1
where isFields='B' and isData='002' ) b on a.isKey = b.isKey