我有一个输入数据,如
---------------------------------------
M/Y | Total | Con | Est | Keep |
----------------------------------
May-16 | 1000 | 100 | 200 | 500 |
Jun-16 | 5000 | 500 | 1000 | 2000 |
Jul-16 | 10000 | 1000 | 2500 | 5000 |
----------------
我需要输出像,
--------------------
M/Y | Total | Con | Con(%) | Est | Est(%) | Keep | Keep(%) |
----------------------------------
May-16 | 1000 | 100 | 10% | 200 | 20% | 500 | 50% |
Jun-16 | 5000 | 500 | 10% | 1000 | 20% | 2000 | 40% |
Jul-16 | 10000 | 1000 | 10% | 2500 | 25% | 5000 | 50% |
---------------------------
注意:此处Con(%),Est(%),Keep(%)
是根据Total
值计算的。
EX:Con(%) = (Con/Total)*100
任何人都可以帮助我。
提前致谢。
答案 0 :(得分:1)
假设total
永远不是0:
select
t.*
, cast(100 * con / total as varchar) + '%' [con(%)],
, cast(100 * est / total as varchar) + '%' [est(%)],
, cast(100 * keep / total as varchar) + '%' [keep(%)]
from your_table t;
如果total
可以是0
,则一个明智的输出是NULL
,在这种情况下可以通过将total
替换为NULLIF(total,0)
来实现。