Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 计数IIF的多个条件_Ms Access - Fatal编程技术网

Ms access 计数IIF的多个条件

Ms access 计数IIF的多个条件,ms-access,Ms Access,我试图在设置的access查询中获得2个计数列 我有一个符合标准的所有员工的计数,现在我需要得到两个不同工作组的计数。这些代码适用于1级主管(代码11)和5级主管(代码72-79)。我已经尝试了计数IIF的几个变体,但它不起作用,有什么想法或建议吗 SELECT O896IA_VEMPPRSA.REG_NR, O896IA_VEMPPRSA.DIS_NR, Count(O896IA_VEMPPRSA.SYS_EMP_ID_NR) AS CountOfSYS_EMP_ID_NR FRO

我试图在设置的access查询中获得2个计数列

我有一个符合标准的所有员工的计数,现在我需要得到两个不同工作组的计数。这些代码适用于1级主管(代码11)和5级主管(代码72-79)。我已经尝试了计数IIF的几个变体,但它不起作用,有什么想法或建议吗

SELECT O896IA_VEMPPRSA.REG_NR, 
  O896IA_VEMPPRSA.DIS_NR, 
  Count(O896IA_VEMPPRSA.SYS_EMP_ID_NR) AS CountOfSYS_EMP_ID_NR
FROM ((O896IA_VEMPPRSA  
  INNER JOIN O867IA_VJOBHST  
  ON O896IA_VEMPPRSA.SYS_EMP_ID_NR = O867IA_VJOBHST.SYS_EMP_ID_NR)  
  INNER JOIN O867IA_VPJOBCO  
  ON O896IA_VEMPPRSA.JOB_CLS_CD = O867IA_VPJOBCO.JOB_CLS_CD)  
  INNER JOIN O867IA_VPJOBCO AS O867IA_VPJOBCO_1  
  ON O867IA_VJOBHST.JOB_CLS_CD = O867IA_VPJOBCO_1.JOB_CLS_CD
WHERE (((O867IA_VJOBHST.REC_EFF_STT_DT)>=#7/1/2012#  
  Or (O867IA_VJOBHST.REC_EFF_STT_DT)>=#1/1/2012#)  
  AND ((O896IA_VEMPPRSA.EMP_EMT_STS_CD)<>"T")  
  AND ((O867IA_VJOBHST.EMP_ACN_TYP_CD)="HIR")  
  AND ((O867IA_VPJOBCO_1.JOB_GRP_CD) In ("11","72","74","77","79")))  
  OR (((O867IA_VJOBHST.REC_EFF_STT_DT)>=#7/1/2012#  
  Or (O867IA_VJOBHST.REC_EFF_STT_DT)>=#1/1/2012#)  
  AND ((O896IA_VEMPPRSA.EMP_EMT_STS_CD)<>"T")  
  AND ((O867IA_VJOBHST.EMP_ACN_TYP_CD)="PRO")  
  AND ((O867IA_VPJOBCO_1.JOB_GRP_CD) In ("11","72","74","77","79")))
GROUP BY O896IA_VEMPPRSA.REG_NR, O896IA_VEMPPRSA.DIS_NR;

我认为您谈论的代码字段是JOB\u GRP\u CD,它似乎是文本数据类型

如果这是正确的,您可以通过向SELECT子句添加两个字段表达式来使用Sum IIf而不是您提到的Count IIf策略

选择 O896IA_VEMPPRSA.REG_NR, O896IA_VEMPPRSA.DIS_, CountO896IA_VEMPPRSA.SYS_EMP_ID_NR作为SYS_EMP_ID_NR的CountOf, SumIIfO867IA_VPJOBCO_1.JOB_GRP_CD='11',1,0 作为[一级主管], SumIIfO867IA_VPJOBCO_1.JOB_GRP_CD在'72','74','77','79',1,0中 AS[主管级别5] 但如果你喜欢IIf伯爵,那也行

CountIIfO867IA_VPJOBCO_1.JOB_GRP_CD='11',1,空 如果我对字段名和/或数据类型的猜测错误,请使用适合正确字段和数据类型的条件调整其中一种模式

SumIIf,1,0 CountIIf,1,空
我收到一个错误:SELECT语句包含一个保留字或一个拼写错误或缺少的参数名称,或者标点符号不正确。我忘记了在sys\u EMP\u ID\u NR计数后的逗号。我更正了答案。