直接使用行转列 unpivot
with t as (
select '06-07' a,1 b,0.1 c,0.1 d,0.1 e
union all select '06-06',2,0.2,0.2,0.2
union all select '06-07',2,0.3,0.3,0.3
union all select '06-06',1,0.4,0.4,0.4
)
select a,col+'-'+convert(varchar,b) [n-b],b,cde
from t a
unpivot(cde for col in (c,d,e)) p