select a.aid ,a.bid
from b a
left join (select MaxCreateDate,aid from b group by aid)b
where a.aid=b.aid
说明:
select MaxCreateDate,aid from b group by aid
是首先创建一个表,获取每个分组的最后创建日期。最后形成的数据是,每个aid对应的的最大日期。
然后,用b表去连接这个表。连接规则是所属的分组。
看下来结果和A表没有什么关系啊,那个MaxCreateDate是指按前两个分组,取最大的一个创建时间吗?
试一下这个语句:
select Aid,Bid,max(CreateDate) as MaxCreateDate from B group by Aid,Bid
看下这是不是你想要的?如果不是,可以稍稍改一下,感觉你需要的就是“group by”这个功能
应该是这样的
SELECT A.Aid,
(select top 1 B.Bid,B.CreateDate as MaxCreateDate from B where createdate=(SELECT MAX(B.CreateDate) as CreateDate from B
where b.aid=a.aid gorup by aid)
FROM A試一下
问题是什么呢 ? 我怎么没有看懂你问的什么呢???