【发布时间】:2022-01-02 00:56:19
【问题描述】:
表 1:
| TheName | TheVal1 |
|---|---|
| Blue | 2 |
| Red | 8 |
| Orange | 6 |
| Green | 13 |
| Blue | 14 |
| Green | 25 |
表 2:
| TheName | TheVal2 |
|---|---|
| Blue | 9 |
| Red | 30 |
| Pink | 8 |
| Green | 10 |
| Blue | 3 |
| Green | 2 |
输出除外:
| TheName | TheVal |
|---|---|
| Blue | 4 |
| Red | -22 |
| Pink | -8 |
| Green | 26 |
| Orange | 6 |
计算详情:
Blue = (2+14)-(9+3) = 4
Red = (8)-(30) = -22
Pink = (0)-(8) = -8
Green = (13+25)-(10+2) = 26
Orange = (6)-(0) = 6
我所做的尝试:
所以基本上我的查询应该执行以下操作:
SELECT TheName,SUM(TheVal1) - (SELECT TheName,SUM(TheVal2) FROM Table2 GROUP BY TheName) FROM Table1 GROUP BY TheName
但这会引发以下错误:
您编写的子查询可以返回多个字段,而无需在主查询的 FROM 子句中使用 EXISTS 保留字。修改子查询的 SELECT 语句,只请求一个字段
我认为我必须将两个表合并为 1 并将新值转换为负值,所以这应该给出下表:
| TheName | TheVal |
|---|---|
| Blue | 2 |
| Red | 8 |
| Orange | 6 |
| Green | 13 |
| Blue | 14 |
| Green | 25 |
| Blue | -9 |
| Red | -30 |
| Pink | -8 |
| Green | -10 |
| Blue | -3 |
| Green | -2 |
然后只需执行以下 SQL 代码:
SELECT TheName,SUM(TheVal) FROM NewMergedTable GROUP BY TheName
有人可以帮我解决这个问题吗?
请注意,我正在开发 ACCESS
【问题讨论】: