我一直遇到同样的问题,它围绕具有以下列的特定查询:
CAST((COALESCE(price, 0.000000)) AS DECIMAL(18,6)) * quantity amount (TITLE 'Amount')
如果我没有在组中提及它,它会喷出错误 3504,如果我这样做,它会喷出错误 3627。
关于如何正确构建这部分查询的任何想法?
编辑:如果您需要更多信息,请询问:)
我相信您在这里遇到了多个问题(没有更多代码很难说)。
当此列不属于 GROUP BY 子句时会出现 3504,因为不属于 GROUP BY 的所有列都必须是“聚合”函数(例如 SUM、MAX、MIN、AVG 等)。当您将它包含在 GROUP BY 中时,此列现在可以了。
但是,我的猜测是您的 SELECTion 列表中也有一个 COUNT(DISTINCT(x)) 。在同时使用 GROUP BY 时,不能在查询的 SELECT、ORDER BY 或 HAVING 子句中使用 DISTINCT 函数。我怀疑如果您删除 DISTINCT,留下 COUNT(*),这将起作用。
顺便说一句,我不确定您是否要按您在此处提到的列进行分组。按财务金额分组是不寻常的。例如,将此列与 SUM 函数聚合会更常见。或者,您可能需要重新考虑使用 GROUP BY 的原因(因为按“金额”分组会给您带来奇怪的结果,基本上为返回的每一行提供一行,除非 GROUP BY 列和“金额”是相同的,它会将其折叠成一行,这意味着您将得到不一致的结果)。
希望这可以帮助。