按表达式访问报告分组

时间:2018-12-01 14:50:41

标签: ms-access

我想按[Order]值对报告进行分组,但例外:如果[tmp]的值等于1,则应将其与额外的标头分组在一起

我尝试过

=IIf([tmp]=1;1;[Order])

但是它只是给出一个错误“此表达式的类型输入错误...”,基本上,与 IIf 函数分组的每个表达式都给出了该错误,在访问的其他部分都可以正常工作

我刚放的时候

=[Order]

很好

难道只有我一个人对访问中的表达式或分组的工作方式不了解吗?

1 个答案:

答案 0 :(得分:1)

要对查询进行分组,有两种可能:

  1. 使用UNION查询:

    SELECT Max(YourField) FROM YourTable WHERE Tmp <> 1 GROUP BY [Order]
    UNION
    SELECT Max(YourField) FROM YourTable WHERE Tmp = 1 GROUP BY Tmp
    
  2. 使用子查询根据您的条件创建“ GroupField”:

    SELECT Max(YourField)
    FROM (SELECT *, IIf(Tmp = 1, 1, [Order]) As GroupField FROM YourTable) As SubQuery
    GROUP BY GroupField
    

仅用于在报告中进行分组:

您可以将子查询用作报告的记录源,然后在“虚拟”字段GroupField上分组:

SELECT *, IIf(Tmp = 1, 1, [Order]) As GroupField FROM YourTable

信息:

Max(YourField)YourTable只是为了运行我的测试查询,因为您没有指定其余的查询。