无法将 sum 函数与派生表结果一起使用

Posted

技术标签:

【中文标题】无法将 sum 函数与派生表结果一起使用【英文标题】:Unable to use sum function with derived table result 【发布时间】:2019-09-19 16:22:52 【问题描述】:

我有一个作业问题要求我创建一个选择语句 计算会计软件包的总成本 于 1998 年安装在每个 属于会计部门的计算机

我已经能够使用以下语句找到符合这些要求的软件包及其成本。

select pack, softcost from software where year(instdate) = 1998 and pack in 
 (select pack from package where PAcKTYPE = 'accounting') and TAGNUM in 
  (select TAGNUM from pc where location = 'sales')

但是,当我尝试使用以下语句计算这些软成本的总和时,我收到一条错误消息,指出“列 'software.SOFTCOST' 在选择列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY 子句。”

select sum(SOFTCOST) from
(select pack, softcost from software where year(instdate) = 1998 and pack in 
 (select pack from package where PAcKTYPE = 'accounting') and TAGNUM in 
  (select TAGNUM from pc where location = 'sales') group by pack) as table1

有人能引导我走向正确的方向吗?我已经附上了我第一个选择语句的结果和下面我的数据库中的数据。

【问题讨论】:

在您的内部查询中,您尝试使用select pack, softcost,但仅尝试使用group by pack。你要么需要sum(softcost),要么需要group by softcost——无论哪个适合你的需要。 开始学习最佳实践——其中许多将避免难以发现的逻辑错误。给每个表一个别名(简短但有用,而不是单个字符)并在引用任何列时使用它。始终使用适当的模式名称引用表。最后看你的要求。现在再看一遍。属于会计部门的计算机? 【参考方案1】:

您的选择最多只有一列,因此不需要分组。删除你的组应该没问题

【讨论】:

以上是关于无法将 sum 函数与派生表结果一起使用的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL单表查询

如何将案例条件与聚合一起使用?

pandas_udf结果无法写入表

SQL Server进阶表表达式

将 Woocommerce REST API 与 WP-API 的 JWT 身份验证一起使用时,无法获得超过 12 个结果

是否可以将 SUM() ORDER BY 的结果放入原始表中?