+ -
当前位置:首页 → 问答吧 → 请问如何从其中一张表里只返回一个特定的记录?

请问如何从其中一张表里只返回一个特定的记录?

时间:2011-12-27

来源:互联网

SQL code

select pe.plm_oid,
       rm.plm_m_id,
       pe.plm_createtime,
       pe.plm_newname,
       pe.plm_pdwgdate,
       pe.plm_ppdwgdate,
       pe.plm_pdwgcode,
       pe.plm_ppdwgcode,
       pe.plm_pdtdesign,
       pe.plm_dpdtdesign,
       pe.plm_pdwgname,
       pe.plm_cxsj,
       pe.plm_tzsj,
       f.plm_oid,
       w.plm_completeddate
  from plm_cus_PROJECTECHFILE pe
  left join PLM_PSM_FILE f
    on pe.PLM_OID = f.PLM_ITEMOID, PLM_PSM_ITEMMASTER_REVISION rm,
 PLM_BPMv_WORKITEM w, plm_bpmv_r_group_data_ins i,
 plm_cus_r_XMHXMJSWJ x
 where i.plm_bosubid = 1
   and w.plm_name like '%批准'
   and pe.plm_xmjswjfl = '设计任务书-电气'
   and i.plm_PROCESSoid = w.plm_processinstanceid
   and i.plm_bomoid = rm.plm_m_oid
   and rm.plm_m_lastrevision = rm.plm_r_revision
   and pe.PLM_ITERATION = rm.plm_r_lastiteration
   and rm.plm_r_oid = pe.plm_revisionoid
   and x.plm_rightobj = rm.plm_m_oid
   and x.plm_leftobj = '917F410F954446F59DD3DB2F5D9B3247'
 order by rm.plm_m_id



以上的代码,我发现PLM_BPMv_WORKITEM w这张表里会有多行记录,我希望返回PLM_BPMv_WORKITEM w里w.plm_completeddate
是最后的一条记录,请教如何改写?

作者: zjl1234567   发布时间: 2011-12-27

修改成 order by rm.plm_m_id desc 

然后查询结果的第一条就是你原来语句的最后一条

作者: fudaliang1999   发布时间: 2011-12-27

SQL code
select max(plm_completeddate)
 from
PLM_BPMv_WORKITEM

作者: xpingping   发布时间: 2011-12-27

引用 2 楼 xpingping 的回复:
SQL code
select max(plm_completeddate)
from
PLM_BPMv_WORKITEM


可能是我没表述清楚。
如果不关联PLM_BPMv_WORKITEM w,查出的记录都是不重复的记录,
但关联上PLM_BPMv_WORKITEM w后,有一些记录就有重复项了,区别只是plm_completeddate不一样。
我想把这些重复项里找一条最新的记录,不是重复的记录还要正常输出。

就是PLM_BPMv_WORKITEM w经过条件
i.plm_PROCESSoid = w.plm_processinstanceid
w.plm_name like '%批准'

后有多条记录。可我又与其他表联表了,这里如何处理?
我才学没几天,希望能给出完整参考,谢谢

作者: zjl1234567   发布时间: 2011-12-27