大家帮忙看看这个sql该怎么写?
表A(id char(10), freedate char(8)),表B(id char(10), optdate char(8), sum decimal(10,2)),表A的id是主键,表B是纵表,一个id会对应多条记录。
现在想让B外连接A,得到B中B.optdate<A.freedate and B.id=A.id的最大日期对应的sum的值。
例如: A中记录(1, '20091001') B 中记录(1,'20091021',100) (1, '20090801', 200) (1, '20090901', 300)
想写一个如下所示的sql:
select A.* from A left outer join ( ..... ) b on b.id = a.id
因为B.optdate<A.freedate有两条记录,取这两条记录中optdate最大值的记录的sum,即300,得到结果:
A.id A.freedate B.sum
1 20090901 300
不知道说明白没有, 折腾半天也写不出来,谢谢大家了。