任何人都可以给我一些有关如何根据以下数据和条件在Access中选择/更新记录的想法吗?
背景:除具有重复记录/角色(由Headcount=1
重复的记录)外,应为所有记录设置ApptID
。对于那些count(Headcount)>1
,我必须使用以下记录设置Headcount=0
:
Right(Empcode,5)<>Right(ApptID,5)
和固定值,即100005-300678
Right(Empcode,5)<>Right(ApptID,5)
记录即100006-300583
APPTID
记录中没有包含与ApptID
相似的5位数字(即100007
)的empcode,并且两者都是固定的或续的,则以每个FTE最低的将有Headcount=0
,即100007-300295 / 100008-300419
APPTID | EmpCode | FTE | Status | HEADCOUNT
100001 | 300001 | 1.0 | Cont | 1
100002 | 300002 | 0.9 | Cont | 1
100003 | 300003 | 0.8 | Fixed | 1
100004 | 300004 | 1.0 | Cont | 1
100005 | 300005 | 0.5 | Cont | 1
100005 | 300678 | 0.5 | Fixed | 1
100006 | 300006 | 0.4 | Cont | 1
100006 | 300583 | 0.4 | Cont | 1
100007 | 300295 | 0.4 | Fixed | 1
100007 | 300385 | 0.6 | Fixed | 1
100008 | 300419 | 0.4 | Cont | 1
100008 | 300902 | 0.6 | Cont | 1
当前,首先在更新查询之前创建选择查询。我设法做到了第一个标准:
SELECT ApptID, EmpCode, FTE, Status, Headcount
FROM Staff S
WHERE S.ApptID in (
Select Tmp.ApptID FROM Staff as Tmp
Group by Tmp.ApptID
Having Sum(Tmp.Headcount)>1)
AND RIGHT(S.ApptID,5)<>RIGHT(S.EmpCode,5)
AND S.Status="Fixed";
从这里开始,我不知道如何进行第二和第三,因为我的所有尝试都导致包含其他记录。