mysql - 从另一表的列中减去一列的总和
问题描述
我试过的:
SELECT requestformtbl.employee_name, requestformtbl.request_type, requestformtbl.total_day,
requestformtbl.request_status, requestformtbl.admin_remark, requestformtbl.confirmed_by, requestformtbl.date_confirmed, requesttbl.max_allotment,
(requesttbl.max_allotment - sum(requestformtbl.total_day)) as Available from requestformtbl inner join requesttbl on
requestformtbl.request_type = requesttbl.request_type;
错误:列 'requestformtbl.employee_name' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。
如果 requestttbl.request_type="Vacation Leave" 有 requesttbl.max_allotment=20,当 requestformtbl 中插入一个新条目时 requestformtbl.request_type="Vacation Leave" 和 requestformtbl.total_day=5 我想获得剩余的可用假期
解决方案
您可以在不使用 aGROUP BY
的情况下获得所需的结果,方法是使用相关子查询来获取员工使用天数的总和:
SELECT rft.employee_name,
rft.request_type,
rft.total_day,
rft.request_status,
rft.admin_remark,
rft.confirmed_by,
rft.date_confirmed,
rt.max_allotment,
rt.max_allotment - (select sum(total_day)
from requestformtbl rft2
where rft2.employee_name = rft.employee_name) as Available
from requestformtbl rft
inner join requesttbl rt on rft.request_type = rt.request_type;
注意我使用了表别名来使查询更具可读性。
推荐阅读
- php - 我应该在应用层服务中测试什么
- python - 显示文件的功能不起作用 - Python
- pytorch - 如何在 pytorch 中为 BERT 的训练器准备训练数据集?
- github - GitHub 帐户和存储库
- html - Powershell脚本修复ConvertTo-Html的输出
- kotlin - 编译器显示错误 Kotlin: Variable 'mAdapter' must be initialized
- powershell - PowerShell:将 HTML 附加到具有多个值的属性
- reactjs - 错误发生意外错误:“https://registry.yarnpkg.com/eslint-config-pretttier:未找到”
- r - R多条件过滤/删除
- ruby - 运行本地 gem 时无法加载此类文件错误