バンドがあります。
各メンバーが楽器を演奏します。
各機器の費用 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() を作成することもできましたが、より優れたエレガントなソリューションがあるかどうかを知りたいです。