有一个乐队。
每个成员都会演奏一种乐器。
每件乐器的价格为 X$
我想创建一个报告:每个成员对乐队经理的“成本”是多少。
create table #Inst(id int, name nvarchar(max) , price int )
insert into #Inst values (1,'guitar',20),
(2,'bass',10),
(3,'drums',30),
(4,'piano',40)
create table #Players(id int, name nvarchar(max) , instId int )
insert into #Players values (1,'john',1),
(2,'john',4),
(3,'paul',2),
(4,'paul',2),
(5,'george',1),
(6,'ringo',3)
我试过什么?
select name , totalCostToTheband=
(select sum(price) from #inst i where i.id= #players.instId )
from #players
但这会产生重复的名称:
我想查看 4 条记录,这些记录汇总了每个名称的成本。
ps: 我本可以在整个查询中创建一个 sum(),但我想知道是否有更好、更优雅的解决方案。