You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单SQL查询中对两个SELECT语句的列执行计算并关联结果

解决方案:通过JOIN整合两个表并生成计算结果

这问题很常见,用SQL的关联查询就能轻松搞定!咱们直接上实用方案:

核心SQL代码

根据你用的数据库方言,字段名带空格需要用对应符号包裹,这里给出两种常用写法:

-- MySQL 写法(用反引号包裹含空格的字段名)
SELECT 
    s.`Shop name` AS 商店名称,
    s.`items sold` AS 售出数量,
    r.`Items returned` AS 退回数量,
    s.`items sold` - r.`Items returned` AS 净售出数量
FROM 
    tblSold s
INNER JOIN 
    tblReturned r ON s.`Shop name` = r.`Shop name`;

-- SQL Server 写法(用方括号包裹含空格的字段名)
SELECT 
    s.[Shop name] AS 商店名称,
    s.[items sold] AS 售出数量,
    r.[Items returned] AS 退回数量,
    s.[items sold] - r.[Items returned] AS 净售出数量
FROM 
    tblSold s
INNER JOIN 
    tblReturned r ON s.[Shop name] = r.[Shop name];

执行后得到的结果表

商店名称售出数量退回数量净售出数量
Shop A1001090
Shop B50545
Shop C75768
Shop D80872

额外补充说明

  • 这里用INNER JOIN是因为你的示例中两个表的商店记录完全匹配,如果存在某个商店只在其中一个表出现的情况,可以改用LEFT JOIN(保留tblSold的所有记录)或RIGHT JOIN(保留tblReturned的所有记录)。此时缺失的数值会显示为NULL,计算时可以用COALESCE函数兜底,比如COALESCE(s.items sold, 0) - COALESCE(r.Items returned, 0)避免计算结果为NULL。
  • 字段名包含空格时一定要用对应的符号包裹,否则SQL会直接报错,这点要注意!

内容的提问来源于stack exchange,提问作者DJMH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:12:17