34,590
社区成员
发帖
与我相关
我的任务
分享
create table T1(number varchar(10),id int)
insert into t1 values('aaa' ,1)
insert into t1 values('bbb' ,2)
insert into t1 values('ccc' ,1)
create table T2(id int,date datetime,num varchar(10))
insert into t2 values(1 ,'20010101', 'aaa')
insert into t2 values(1 ,'20020305', 'aa1')
insert into t2 values(1 ,null , 'ccc')
insert into t2 values(2 ,'20000506', 'ww')
insert into t2 values(2 ,'20030306', '43as')
insert into t2 values(2 ,'20000608', '454')
go
select t1.* , m.* from t1 , t2 m
where t1.id = m.id and charindex(m.num,t1.number) > 0
and m.date = (select min(date) from t2 where t2.id = m.id)
drop table t1 , t2
/*
number id id date num
---------- ----------- ----------- ------------------------------------------------------ ----------
aaa 1 1 2001-01-01 00:00:00.000 aaa
(所影响的行数为 1 行)
*/
Select T.ID,T.[Date],T2.Num From
(SELECT dbo.T1.ID, MIN(dbo.T2.[Date]) AS [Date]
FROM dbo.T1 INNER JOIN
dbo.T2 ON dbo.T1.ID = dbo.T2.ID
GROUP BY dbo.T1.ID) T Inner join T2 On T.ID=T2.ID And T.[Date]=T2.[Date]
Where Exists (Select 1 From T1 Where T2.Num=T1.Number)
select * from t1 a,t2 b where a.id=b.id
and not exists (select 1 from t2 where id=b.id and datediff(dd,b.[date],[date]) <0 ) and b.num in ( select number from t1 )
number id id date num
------------ ----------- ----------- ---------- ------------
aaa 1 1 ccc
ccc 1 1 ccc
SELECT DISTINCT m.id,m.date,m.num FROM #tb t
LEFT JOIN
(
SELECT * FROM #tc t
WHERE NOT EXISTS(SELECT NULL FROM #tc
WHERE id=t.id AND isnull(date,'0')<isnull(t.date,'0'))
)m
ON t.id=m.id
--AND t.number=m.num ----这两个条件任意一个应该都是可以的
AND exists (select NULL from #tb where number=m.num) ----
WHERE m.id IS NOT NULL
id date num
----------- ---------- ----------
1 NULL ccc
(1 row(s) affected)