首页 > 解决方案 > Sql Server - 在第一条记录下方显示第二条记录以及其他数据

问题描述

我有一个包含以下数据的 sql 表:

Id   department     Amount
1      Accounting   10000
2      Catering      5000
3      Cleaning      5000

我想返回如下数据:

Id   department      Amount
1    Accounting      10000
1       50%
2     Catering       5000
2       25%     
3     Cleaning       5000
3       25%

这意味着每条记录在其下方返回第二条记录并显示总量的百分比。我尝试使用 PIVOT 表,但我仍然无法将第二行定位在第一个相关表的下方。

有没有人做过类似的事情我只需要一些指导。

标签: sql-server

解决方案


create table #T(Id int, Dept varchar(10),Amount int)
insert into #T
values(1,'Accounting',10000),(2,'Catering',5000),(3,'Cleaning',5000)


declare @Totll float = (Select sum(Amount) from #T)

Select *
from #T
union
select Id,Convert(varchar(50), (Amount/@Totll)*100)+'%',0
from #T
order by Id,Amount desc

推荐阅读