任何人都可以告诉我如何获得租赁表中每个工具的总和与工具主表中可用的工具相对应
租借
_ _ _ _ _ _ _ _ _ _ _ _ _ _
|tool_no| a1 | a2 | a3 | a4 |
|-------|----|----|----|----|
| 121 | 52 | 89 | 56 | 16 |
|-------|----|----|----|----|
| 142 | 45 | 94 | 89 | 12 |
|-------|----|----|----|----|
| 142 | 24 | 56 | 12 | 89 |
|-------|----|----|----|----|
| 156 | 96 | 89 | 14 | 16 |
|-------|----|----|----|----|
ToolMaster
_ _ _ _
|tool_no|
|-------|
| 121 |
|-------|
| 142 |
|-------|
| 141 |
|-------|
| 150 |
|-------|
我的查询在下面给出
select tool_no, SUM(a1+a2+a3+a4) AS rentalsum from Rental where tool_no IN(select tool_no from ToolMaster)
但我没有得到所需的结果
我的预期输出是这样的
_ _ _ _ _ _ _ _ _ _ _
| tool_no | rentalsum |
|---------|-----------|
| 121 | 213 |
|---------|-----------|
| 142 | 421 |
|---------|-----------|
答案 0 :(得分:1)
当前查询中唯一缺少的是GROUP BY
子句。 See Here
但我宁愿在JOIN
而不是IN
。
SELECT a.Tool_No,
SUM(b.a1 + b.a2 + b.a3 + b.a4) totalSum
FROM ToolMaster a
INNER JOIN Rental b
ON a.Tool_No = b.Tool_No
GROUP BY a.Tool_No
要进一步了解联接,请访问以下链接:
输出
╔═════════╦══════════╗
║ TOOL_NO ║ TOTALSUM ║
╠═════════╬══════════╣
║ 121 ║ 213 ║
║ 142 ║ 421 ║
╚═════════╩══════════╝
答案 1 :(得分:0)
select tool_no, SUM(a1)+SUM(a2)+SUM(a3)+SUM(a4) AS rentalsum
from Rental
Where tool_no in (select tool_no from ToolMaster)
Group By tool_no
使用加入
select t.tool_no, SUM(a1)+SUM(a2)+SUM(a3)+SUM(a4) AS rentalsum
from Rental t
Inner Join ToolMaster tm
ON t.tool_no = tm.tool_no
Group By t.tool_no
答案 2 :(得分:0)
使用以下查询:
SELECT r.tool_no, SUM(r.a1+r.a2+r.a3+r.a4) AS rentalsum
FROM Rental r INNER JOIN ToolMaster tm
ON r.tool_no = tm.tool_no
GROUP BY r.tool_no;
这将有魅力。