SQLpivot/jointable?

SQL pivot/join table?

这是我的实际 table...

ID        SEQ         HOURS      ROUTER

1         1000        13         Old
1         2000        23         Old
1         3000        17         Old

2         1111        43         New
2         2222        40         New

3         1111        16         New
3         2222        18         New

4         1000        19         Old
4         2000        31         Old
4         3000        10         Old

这是我想要的 table...

ID        ALPHA       BRAVO

1         36          17    
2         43          40
3         16          18
4         50          10

这里需要一些逻辑,我可以这样说:

Old Router's 1000 + 2000 = Alpha
New Router's 1111 = Alpha

Old Router's 3000 = Bravo
New Router's 2222 = Bravo

我只有两种类型的路由器,但它们的序列号应该表示相同的意思,这就是我尝试合并结果的原因。我知道的唯一方法是进行 2 个单独的查询,每个查询都针对一个路由器,但我仍然需要以某种方式组合并最终将它们转换为枢轴。

我不确定我想要做的事情是否最好在数据库外用另一种语言完成,但我希望在 sql 内完成,所以当我取回数据时我可以使用它。任何帮助将不胜感激。

您在寻找条件聚合吗?

select id,
       sum(case when router = 'old' and seq in (1000, 2000) then hours
                when router = 'new' and seq = 1111 then hours
                else 0
           end) as alpha,
       sum(case when router = 'old' and seq in (3000) then hours
                when router = 'new' and seq = 2222 then hours
                else 0
           end) as bravo
from t
group by id;