SQL Server-在第一个记录下方显示第二个记录以及其他数据

时间:2019-07-10 08:18:44

标签: 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表,但仍然无法定位 第二行紧挨着第一行。

有没有人做过类似的事情,我只需要一些准则即可。

2 个答案:

答案 0 :(得分:0)

new JsonArray().add(new JsonArray(currencies)

答案 1 :(得分:0)

使用CTE来计算总金额。
然后对表使用UNION ALL和计算百分比的查询:

with cte as (select sum(amount) sumamount from tablename)
select id, department, amount 
from tablename
union all
select id, concat(100 * amount / (select sumamount from cte), '%'), null 
from tablename 
order by id, amount desc

请参见demo
结果:

> id | department | amount
> -: | :--------- | -----:
>  1 | Accounting |  10000
>  1 | 50%        |   null
>  2 | Catering   |   5000
>  2 | 25%        |   null
>  3 | Cleaning   |   5000
>  3 | 25%        |   null