表格1 :
| 名字 | TheVal1 |
|---|---|
| 藍色 | 2 |
| 紅色的 | 8 |
| 橘子 | 6 |
| 綠 | 13 |
| 藍色 | 14 |
| 綠 | 25 |
表二:
| 名字 | 瓦爾2 |
|---|---|
| 藍色 | 9 |
| 紅色的 | 30 |
| 粉色的 | 8 |
| 綠 | 10 |
| 藍色 | 3 |
| 綠 | 2 |
輸出除外:
| 名字 | 值 |
|---|---|
| 藍色 | 4 |
| 紅色的 | -22 |
| 粉色的 | -8 |
| 綠 | 26 |
| 橘子 | 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 并將新值轉換為負值,所以這應該給出下表:
| 名字 | 值 |
|---|---|
| 藍色 | 2 |
| 紅色的 | 8 |
| 橘子 | 6 |
| 綠 | 13 |
| 藍色 | 14 |
| 綠 | 25 |
| 藍色 | -9 |
| 紅色的 | -30 |
| 粉色的 | -8 |
| 綠 | -10 |
| 藍色 | -3 |
| 綠 | -2 |
然后只需執行以下 SQL 代碼:
SELECT TheName,SUM(TheVal) FROM NewMergedTable GROUP BY TheName
有人可以幫我弄這個嗎 ?
請注意,我正在研究 ACCESS
uj5u.com熱心網友回復:
您可以使用來自 suquery 的 select 和 union
select TheName, sum(TheVal)
from (
select TheName, sum(TheVal1) TheVal
from table1
group by TheName
UNION
select TheName, -1*sum(TheVal2)
from table2
group by TheName
) t group by TheName
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/364364.html
