首页 新闻 会员 周边

SQL查询,请各位大哥给看一下!

0
悬赏园豆:10 [已解决问题] 解决于 2012-03-12 09:16

duo的主页 duo | 初学一级 | 园豆:88
提问于:2012-03-11 15:23
< >
分享
最佳答案
0

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表去连接这个表。连接规则是所属的分组。

收获园豆:10
lucika.zh | 初学一级 |园豆:62 | 2012-03-11 17:43
其他回答(3)
0

看下来结果和A表没有什么关系啊,那个MaxCreateDate是指按前两个分组,取最大的一个创建时间吗?

试一下这个语句:

select Aid,Bid,max(CreateDate) as MaxCreateDate from B group by Aid,Bid

看下这是不是你想要的?如果不是,可以稍稍改一下,感觉你需要的就是“group by”这个功能

丁学 | 园豆:18730 (专家六级) | 2012-03-11 15:56

应该是这样的

支持(0) 反对(0) 小小刀 | 园豆:1991 (小虾三级) | 2012-03-11 21:26
0

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試一下

無限遐想 | 园豆:3740 (老鸟四级) | 2012-03-11 15:58
0

  问题是什么呢 ?  我怎么没有看懂你问的什么呢???

誓唁一生 | 园豆:217 (菜鸟二级) | 2012-03-12 00:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册