sql查询,请问以下查询功能如何实现

1、有三张表,设备表equipment,传感器表sensor,数据表data
2、表的列:设备表有设备id与设备名两列,分别为eid,ename;sensor表类似也有
传感器id,传感器名,单位,三列,分别对应sid,sname,sunit,再加一个设备id做外键
数据表类似有数据id,数据值两列,对应did,dval,再加传感器id做外键
3、表的关系:一个设备可以有多个传感器,一个传感器有多条数据
4、查询要求:①查询出设备名,该设备的所有传感器,以及每个传感器对应的最近的一条数据;②设备无数据时,也要显示出来

http://wenku.baidu.com/link?url=95zSBoJ8Eu_V1A198Mj59zh50jX9qKcd8Bjkv_KN-NQ8Foj9eEgypzHp10vOKsygB3bhzI6ODQFO1UJXrm7faJryNB-6vrXHvHHh2PjHI47

select from equipment e,sensor s,(select d.,row_numbeer() over(partition by 传感器id order by d.did desc ) rn )da
where e.eid=s.eid(+)
and s.传感器id=da.传感器id
and rn=1

大概思路