我有一个名为“ 表”的表,
我想要的结果如下表所示,如果您采用第一行和最后三列,我希望值是56。
我希望上面的表“ 表”的sql server代码和结果成为第二个表。在这里,MaxV-1和MaxV-2取决于“ Number ”列。 MaxV-1 是 Number 时 FirstV , SecondV 和 ThirdV 中的最大值等于1,并且 MaxV-2 的逻辑相同。
答案 0 :(得分:3)
一种方法是毫无条件地进行附条件:
select t.model,
max(case when t.number = 1 then t.pro_code end) as pro_code_1,
max(case when t.number = 2 then t.pro_code end) as pro_code_2,
max(case when t.number = 1 then v.v end) as max_val_1,
max(case when t.number = 2 then v.v end) as max_val_2
from t cross apply
(select max(v.v) as v
from (values (t.firstv), (t.secondv), (t.thirdv)) v(v)
) v
group by t.model;