首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

左联接出现重复记录时取时间最小的那条记录匹配的SQL

2012-10-06 
左连接出现重复记录时取时间最小的那条记录匹配的SQLSQL codeselect p.rackingstarttime intoTime,s.partc

左连接出现重复记录时取时间最小的那条记录匹配的SQL

SQL code
select p.rackingstarttime intoTime,s.partcode,s.partname,s.factory,s.house,s.mlotno,s.vendorlot,pd.stockinqty intoQty,s.revisionno,'入库' intoType,to_char(U.Fullname) opearterName,null orderNo,s.orderno sapOrderNo,s.reference sapreference,s.movementtype,wm.remarkfrom Pickingdetail pdjoin Picking p on p.pickingid=pd.pickingidleft join sapmlot s on s.sapmlotid=pd.sapmlotidleft join "USER" U on U.Userid=pd.rackerleft join wminventory wm on wm.sapmlotid=pd.sapmlotid [color=#FF0000]and wm.createdtime=min(wm.createdtime)[/color]Where (pd.state=6)


上面and wm.createdtime=min(wm.createdtime)错误, left join wminventory会出现重复的记录,现在需要把wminventory表中去时间最小的哪条数据用来左连接,请问怎么做改动最小,谢谢。

[解决办法]
SQL code
left join (select row_number() over(partition by sapmlotid order by createdtime) rn,sapmlotid,remark    from wminventory) wm on wm.sapmlotid=pd.sapmlotid and wm.rn=1 

热点排行