好贷网好贷款

两个表的关联问题 20kenning]

发布时间:2016-12-3 8:26:47 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"两个表的关联问题 20kenning]",主要涉及到两个表的关联问题 20kenning]方面的内容,对于两个表的关联问题 20kenning]感兴趣的同学可以参考一下。

A表 ID    手动编号   姓名 1     J0001     张 2     J0002     王 3     J0003     李 B表 ID    手动编号  金额    时间 1     J0001    100    2008-01-01 2     J0001    200    2008-01-02 3     J0001    230    2008-01-02 4     J0002    100    2008-01-01 5     J0002    200    2008-01-02 我想要得到这样的结果:      A表                         B表 =====================   =========================     ID    手动编号    姓名    ID    手动编号  金额    时间 1     J0001     张       3     J0001    230    2008-01-02 2     J0002     王       5     J0002    200    2008-01-02 也就是要选出B表中日期最后的一个数据与A与关联,如果日期相同的就选ID最大的 这样的SQL语句能实现吗? 请各位帮帮忙,小弟在这里谢过了

select * from a a1 inner join b b1 on a1.手动编号=b1.手动编号 and not exists (select 1 from b where 手动编号=b1.手动编号 and (时间>b1.时间 or 时间=b1.时间 and id>b1.id))

简化 select * from a a1 inner join b b1 on a1.手动编号=b1.手动编号 and id = (select top 1  id from b where 手动编号=b1.手动编号  order by 时间 desc ,id desc )

select a.ID,a.手动编号,a.姓名,B表ID=b.ID,B表手动编号=b.手动编号,金额,时间 from A表 a join B表 b on a.手动编号=b.手动编号 where not exists(select 1 from B表 where 手动编号=b.手动编号 and 时间>=b.时间 and ID>b.ID)

select a.* , o.* from a, ( select m.* from  (   select t.* from b t where 时间 = (select max(时间) from b where 手动编号 = t.手动编号) ) m where ID = (select max(id) from  (   select t.* from b t where 时间 = (select max(时间) from b where 手动编号 = t.手动编号) ) n where 手动编号 = n.手动编号 ) ) o where a.手动编号 = o.手动编号

解决了,谢谢各位

上一篇:字符转换的问题 20liaozhiweihaifeng]
下一篇:我在域服务器上安装了SQL2005,可是运行速度非常慢?是什么原因??帮忙 20Cool_Sword]

相关文章

相关评论