我想按[Order]值对报告进行分组,但例外:如果[tmp]的值等于1,则应将其与额外的标头分组在一起
我尝试过
=IIf([tmp]=1;1;[Order])
但是它只是给出一个错误“此表达式的类型输入错误...”,基本上,与 IIf 函数分组的每个表达式都给出了该错误,在访问的其他部分都可以正常工作
我刚放的时候
=[Order]
很好
难道只有我一个人对访问中的表达式或分组的工作方式不了解吗?
答案 0 :(得分: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
使用子查询根据您的条件创建“ 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
只是为了运行我的测试查询,因为您没有指定其余的查询。