Browse Source

修改sql

java8
赵宏斌 3 weeks ago
parent
commit
7b5a91c7a7
  1. 52
      src/main/resources/mapper/pms/InventoryStockMapper.xml

52
src/main/resources/mapper/pms/InventoryStockMapper.xml

@ -247,23 +247,41 @@
</select> </select>
<select id="getEamWorkOrderCoreComponentsList2" resultType="com.xujie.sys.modules.pms.entity.EamWorkOrderCoreComponentsData"> <select id="getEamWorkOrderCoreComponentsList2" resultType="com.xujie.sys.modules.pms.entity.EamWorkOrderCoreComponentsData">
WITH ranked_records AS ( WITH ranked_records AS (
SELECT
D.OrderNo, ewc.site, ewc.bu_no, ewc.partno, ps.part_description,
ewc.oldSerialNo, ewc.newSerialNo, ewc.created_date, ps.spec, ps.umid,
ps.remark, ewc.created_by, d.fault_reason, b.resource_id,
dbo.eam_Get_eamResourceDesc(d.Site, d.ObjectID) AS resourceDesc,ps.location_id,ps.est_use_qty,v.SupplierName,
CASE WHEN DATEADD(year, ps.est_use_qty, ewc.created_date)> GETDATE() THEN '否' ELSE '是' END AS lifespan,
ROW_NUMBER() OVER (PARTITION BY ewc.partNo ORDER BY ewc.created_date DESC) AS rn
FROM eam_workOrder_coreComponents ewc
LEFT JOIN part_spare ps ON ewc.site = ps.site AND ewc.bu_no = ps.bu_no AND ewc.partNo = ps.part_no
LEFT JOIN eam_workOrder d ON ewc.site = d.Site AND ewc.bu_no = d.bu_no AND ewc.OrderNo = d.OrderNo
LEFT JOIN resource B ON ewc.site = b.site AND d.objectid = b.resource_id
LEFT JOIN view_Supplier v ON ps.site = V.Site AND ps.supplier_id = V.SupplierID
WHERE ps.coreFlag = 'Y'
SELECT
D.OrderNo, ewc.site, ewc.bu_no, ewc.partno, ps.part_description,
ewc.oldSerialNo, ewc.newSerialNo, ewc.created_date, ps.spec, ps.umid,
ps.remark, ewc.created_by, d.fault_reason, b.resource_id,
dbo.eam_Get_eamResourceDesc(d.Site, d.ObjectID) AS resourceDesc,ps.location_id,ps.est_use_qty,v.SupplierName,
CASE WHEN DATEADD(year, ps.est_use_qty, ewc.created_date)> GETDATE() THEN '否' ELSE '是' END AS lifespan,
ROW_NUMBER() OVER (PARTITION BY ewc.partNo ORDER BY ewc.created_date DESC) AS rn
FROM eam_workOrder_coreComponents ewc
LEFT JOIN part_spare ps ON ewc.site = ps.site AND ewc.bu_no = ps.bu_no AND ewc.partNo = ps.part_no
LEFT JOIN eam_workOrder d ON ewc.site = d.Site AND ewc.bu_no = d.bu_no AND ewc.OrderNo = d.OrderNo
LEFT JOIN resource B ON ewc.site = b.site AND d.objectid = b.resource_id
LEFT JOIN view_Supplier v ON ps.site = V.Site AND ps.supplier_id = V.SupplierID
WHERE ps.coreFlag = 'Y'
<if test="query.site != null and query.site != ''">
and ewc.site = #{query.site}
</if>
<if test="query.buNo != null and query.buNo != ''">
and ewc.bu_no = #{query.buNo}
</if>
<if test="query.partNo != null and query.partNo != ''">
and ewc.partNo = #{query.partNo}
</if>
<if test="query.partDescription != null and query.partDescription != ''">
and ps.part_description like '%'+ #{query.partDescription} +'%'
</if>
) )
SELECT OrderNo, site, bu_no, partno, part_description, oldSerialNo, newSerialNo,
created_date, spec, umid, remark, created_by, fault_reason, resource_id, resourceDesc,location_id,est_use_qty,lifespan,SupplierName
FROM ranked_records
WHERE rn > 1;
SELECT
OrderNo, site, bu_no, partno, part_description, oldSerialNo, newSerialNo,
created_date, spec, umid, remark, created_by, fault_reason, resource_id, resourceDesc,
location_id, est_use_qty, lifespan, SupplierName
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY site,bu_no,partno,oldSerialNo ORDER BY created_date ASC) AS rn2
FROM ranked_records
) AS subquery
WHERE rn > 1 and rn2 = 1;
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save