问题描述:
关于单据重复,一直都是个头疼的问题,因为有可能同一个人单据类型相同或者不同情况下,时间存在重叠。如何查重呢?
我能想到的就是取出来这些数据,然后利用自身进行对比,但是同时利用Id排除自身
SELECT a.EmpId ,
a.Id AS 单据ID1 ,
b.Id AS 单据ID2,
CASE WHEN
a.FLowType =4 THEN '请假单'
WHEN a.FLowType =16 THEN '外勤'
WHEN a.FLowType = 2 THEN '加班'
end AS 单据类型,
a.OrderType AS 类型,
a.CreateUser AS 提交人,
e.EmpNo AS 工号,
a.BeginDateTime AS 单据1开始,
a.EndDateTime AS 单据1结束,
b.beginDateTime AS 单据2开始,
b.EndDateTime AS 单据2结束,
a.OrderNo AS 单据一单号,
b.OrderNo AS 单据二单号
FROM ( SELECT fd.EmpId ,
f.Id ,
MAX(f.BeginDateTime) AS BeginDateTime ,
MAX(f.EndDateTime) AS EndDateTime ,