所有行的分组依据和一些选定的分组依据值?

Posted

技术标签:

【中文标题】所有行的分组依据和一些选定的分组依据值?【英文标题】:group by for all rows and some selected group by values? 【发布时间】:2016-02-01 16:45:57 【问题描述】:

有两个表:Products 和 Orders,1-N 关系。

在产品上创建一个分组依据,订单价值的总和是直截了当的,并给出如下内容:

Product1    1000
Product2    2000
Product3    1400
Product4    1600

但是,我只需要列出几个选定的产品(可以在查询设计视图中输入),并将所有其他产品的总和放在最后一行,如下所示:

Product1    1000
Product3    1400
Other       3600

【问题讨论】:

【参考方案1】:

在查询中添加字段表达式 ...

IIf([YourField] In ('Product1','Product3'), [YourField], 'Other')

然后您可以GROUP BY该字段表达式并对订单值求和。

【讨论】:

谢谢。有什么方法可以参数化这些值?以一种简单的方式创建一个表单并将“in”部分绑定到某个表单输入?但不使用固定数量的参数, In([Forms]![QueryForm].[Column1], [...] ) In () 将不接受值列表的参数。您可以使用 VBA 根据表单输入修改查询的 SQL。【参考方案2】:

您可以使用字段或表格将您的产品翻译成您想要的产品以进行输出。

更好的选择是使用如下表格:

Product-Name    Product-Name-For-Output
Product1        Product1
Product2        Other
Product3        Product3
Product4        Other

然后将新表加入您的查询并从输出中删除 Product-Name 字段并添加 Product-Name-For-Output 字段。

此解决方案的优点是您只需要更改数据而不是查询即可在Other 组中添加或删除产品。

【讨论】:

以上是关于所有行的分组依据和一些选定的分组依据值?的主要内容,如果未能解决你的问题,请参考以下文章

SQL 中 XML 路径的分组依据

SQL 分组依据。不同城市的重复latlng

无效的请求“分组依据”(oracle)

如何根据列值使用分组依据?

SQL 内连接和分组依据以获取逗号分隔值

即使字段包含在分组依据列表中,分组依据或聚合错误