无法将 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 函数与派生表结果一起使用的主要内容,如果未能解决你的问题,请参考以下文章
将 Woocommerce REST API 与 WP-API 的 JWT 身份验证一起使用时,无法获得超过 12 个结果