这段代码:
SELECT
O896IA_VEMPPRSA.REG_NR & O896IA_VEMPPRSA.DIS_NR AS RRDD,
Mgmt_Lvl.MGMT_LVL,
Count(O896IA_VEMPPRSA.SYS_EMP_ID_NR) AS Total,
Sum(IIf(emp_rlc_ir="Y",1,0)) AS Relocate,
Sum(IIf(emp_int_asn_ir="Y",1,0)) AS International_Assignment,
Sum(IIf(emp_tvl_ir="y",1,0)) AS Travel,
Sum(IIf(emp_spc_asn_ir="y",1,0)) AS Special_Assignment,
Sum(IIf([emp_rlc_ir]="Y",1,0))/[Total] AS Relocate_Percent,
Sum(IIf([emp_int_asn_ir]="Y",1,0))/[Total] AS International_Assignment_Percent,
Sum(IIf([emp_tvl_ir]="y",1,0))/[Total] AS Travel_Percent,
Sum(IIf([emp_spc_asn_ir]="y",1,0))/[Total] AS Special_Assignment_Percent
FROM (O867IA_VPJOBCO INNER JOIN Mgmt_Lvl
ON O867IA_VPJOBCO.JOB_GRP_CD = Mgmt_Lvl.JOB_GRP_CD)
INNER JOIN (O896IA_VEMPPRSA INNER JOIN O867IA_VCAREER
ON O896IA_VEMPPRSA.SYS_EMP_ID_NR = O867IA_VCAREER.SYS_EMP_ID_NR)
ON O867IA_VPJOBCO.JOB_CLS_CD = O896IA_VEMPPRSA.JOB_CLS_CD
WHERE (((O896IA_VEMPPRSA.EMP_EMT_STS_CD)<>"T"))
GROUP BY
O896IA_VEMPPRSA.REG_NR & O896IA_VEMPPRSA.DIS_NR,
Mgmt_Lvl.MGMT_LVL,
Mgmt_Lvl.Ranking
ORDER BY Mgmt_Lvl.Ranking DESC;
给我员工的调查答案,问题是这项调查每年都会进行,我需要最近几年的答案。
我尝试将 MAX 用于 REC_EFF_STT_DT 但对于某些员工来说,他们的答案每年都会发生变化,因此由于 group by (我需要)它仍然返回多年的答案。
有没有一种解决方案,我可以只提取最新数据?如果员工在 2008 年、2009 年和 2010 年而不是在 2011 年、2012 年或 2013 年参加调查,则不一定必须是 2013 年,那么我仍然想要 2010 年的数据,无论他们参加的最新调查是什么我需要。