0

好的,这些是我的表:

  EMPLOYEE         STORE          BORROW                 UNIFORM
- EMP_ID         - STORE_ID     - UNIFORM_ID           - UNIFORM_ID
- EMP_NAME       - STORE_NAME   - BORROW_START_DATE    - UNIFORM_COST
- STORE_ID                      - BORROW_END_DATE
                                - EMP_ID

我需要一个函数来返回每个员工当前从每个商店借来的制服的总成本。我需要它看起来像这样

Store Name      Total Uniform Costs
North Store     $4,250
East Store      $2,500
South Store     $2,750
West Store      $3,000

我不知道从哪里开始,我知道我需要使用 GROUP BY 子句,但我不知道如何使用它。你能给我解释一下吗?

4

2 回答 2

1

这个简单的查询应该可以得到你想要的结果:

select s.STORE_NAME, sum(u.UNIFORM_COST) as TotalCost
from STORE s
inner join EMPLOYEE e on e.STORE_ID = s.STORE_ID
inner join BORROW b on b.EMP_ID = e.EMP_ID
inner join UNIFORM u on u.UNIFORM_ID = b.UNIFORM_ID
group by s.STORE_NAME

第一步是连接所有需要的表,以使我们在商店和统一成本之间建立某种联系,因此要连接这两个表,我们必须让所有员工在商店和他们的借款。之后,我们将统一成本求和以获得总价值,最后我们必须按商店名称对结果进行分组。

于 2013-10-21T10:42:47.667 回答
0

您需要使用连接将 Store 表与 Uniform 表连接起来

select STORE_NAME, sum ( UNIFORM_COST) as TotalUniformCosts
from STORE s
inner join EMPLOYEE e
   on s.STORE_ID=e.STORE_ID
inner join BORROW b
   on e.EMP_ID=b.EMP_ID
inner join UNIFORM u
   on b.UNIFORM_ID=u.UNIFORM_ID
group by STORE_NAME
于 2013-10-21T10:45:02.670 回答