22,207
社区成员
发帖
与我相关
我的任务
分享
;with tbl1(id,s1,s2,tp) as
(
select 1,10,15,1 union all
select 2,54,23,1 union all
select 3,23,45,2
),
tbl2 as
(
select tp, sum(s1) as s1,sum(s2) as s2
from tbl1
group by tp
),
tbl3 as
(
select
ROW_NUMBER() OVER(order by tp) as nid,
s1, s2, 1 as id
from tbl2
)
select
t1.[1] as ts1, t2.[1] as ts2,
t1.[2] as ys1, t2.[2] as ys1
from
(
select id, [1],[2]
from (select id, nid, s1 from tbl3) as t1
pivot
(
avg(s1) for nid in([1],[2])
) as T
) as t1
inner join
(
select id, [1],[2]
from (select id, nid, s2 from tbl3) as t1
pivot
(
avg(s2) for nid in([1],[2])
) as T
)as t2
on t1.id = t2.id
ts1 ts2 ys1 ys1
64 38 23 45
;with tbl1(id,s1,s2,tp) as
(
select 1,10,15,1 union all
select 2,54,23,1 union all
select 3,23,45,2
),
tbl2 as
(
select tp, sum(s1) as s1,sum(s2) as s2
from tbl1
group by tp
),
tbl3 as
(
select
ROW_NUMBER() OVER(order by tp) as nid,
s1, s2
from tbl2
)
select top 1
t1.s1 as ts1, t1.s2 as ts2,
t2.s1 as ys1, t2.s2 as ys2
from tbl3 as t1
left join tbl3 as t2
on t1.nid = t2.nid -1