【发布时间】:2020-08-18 05:01:36
【问题描述】:
我有三个表,我正在尝试创建一个 select 语句来给我一个类似下面的结果 团队:
ID Name
1 A
2 B
3 C
玩家:
ID Name TeamID
1 P1 1
2 P2 1
3 P3 2
目标:(目标类型:H 代表主场,A 代表客场,T 代表训练)
ID PID goaltype
1 1 A
2 1 A
3 1 H
4 2 A
5 2 H
6 3 A
7 3 T
结果如下:
Team totalGoals home away trainig percentage[(home/total)*100]
A 5 2 3 0 40%
B 2 0 1 1 0
C 0 0 0 0 0
这是我当前的查询:
select t.name,
count(g.id) as totalGoals,
sum(case when g.GTYPE = 'H' then 1 else 0 end) as home,
sum(case when g.GTYPE = 'A' then 1 else 0 end) as away,
sum(case when g.GTYPE = 'T' then 1 else 0 end) as training,
--(home/totalGoals) as percentage
from teams t
left join players p on p.TeamID = t.id
left join goals g on g.pid = p.id
group by t.name
【问题讨论】:
-
你用的是什么sql server,你试过什么?
-
您到底有什么问题?你想知道什么?你试过什么,你在哪里卡住了?请提出您的问题并告诉我们您面临的问题。