1

谁能告诉我如何获得与工具主表中可用的工具相对应的租赁表中每个工具的总和

出租

 _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
|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 |
|-------|----|----|----|----|

工具大师

 _ _ _ _ 
|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    |
|---------|-----------|
4

3 回答 3

1

当前查询中唯一缺少的是GROUP BY子句。看这里

但我宁愿在而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 ║
╚═════════╩══════════╝
于 2013-05-01T06:29:57.267 回答
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
于 2013-05-01T06:31:11.583 回答
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;

这将发挥魅力。

于 2013-05-01T06:34:22.420 回答