0

調査で特定の質問に回答した従業員数をリストしたレポートと、総人口をリストしたレポートがあります。総人口に対する回答の割合を取得しようとしていますが、コードを機能させるのに問題があります。これまでのところ、私のコードは次のとおりです。

SELECT 
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
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 Mgmt_Lvl.MGMT_LVL;

SUM(IIF(... はカウントで、TOTAL は総母集団です。パーセンテージを取得するには、SUM(IIF( / TOTAL) を取得する必要があります。

4

2 に答える 2

2

クエリが機能していると仮定して...サブクエリでラップします。

SELECT MGMT_LVL,
       R / TTL AS RelocatePercent,
       I / TTL AS IntlAssgntPercent,
       T / TTL AS TravelPercent,
       S / TTL AS SpecialAssgntPercent
FROM (SELECT Mgmt_Lvl.MGMT_LVL, 
             Count(O896IA_VEMPPRSA.SYS_EMP_ID_NR) AS TTL, 
             Sum(IIf(emp_rlc_ir="Y",1,0)) AS R, 
             Sum(IIf(emp_int_asn_ir="Y",1,0)) AS I, 
             Sum(IIf(emp_tvl_ir="y",1,0)) AS T, 
             Sum(IIf(emp_spc_asn_ir="y",1,0)) AS S
        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 Mgmt_Lvl.MGMT_LVL) SQ;
于 2013-09-10T16:16:41.193 に答える
1

Access の SELECT クエリの他の計算フィールドでエイリアス フィールド名を使用できます。次の変更された SELECT 句は、必要なことを行う必要があります。

SELECT 
Mgmt_Lvl.MGMT_LVL, 
Count(O896IA_VEMPPRSA.SYS_EMP_ID_NR) AS Total, 
Sum(IIf(emp_rlc_ir="Y",1,0))/Total AS Relocate, 
Sum(IIf(emp_int_asn_ir="Y",1,0))/Total AS International_Assignment, 
Sum(IIf(emp_tvl_ir="y",1,0))/Total AS Travel, 
Sum(IIf(emp_spc_asn_ir="y",1,0))/Total AS Special_Assignment
于 2013-09-10T16:24:06.143 に答える