在Percentile中减去并显示

时间:2012-07-25 08:52:54

标签: sql-server tsql

我在sql server表中有如下数据:

  Slno  Revenue     Data        Loading
   1    8989898     10/07/12    Before Load
   2    2124124     10/07/12    After Load

我想减去两个值并以百分比表示“10%”

显示结果

请帮助您正确查询以计算以下内容

由于

2 个答案:

答案 0 :(得分:0)

这可能有效

 Declare @Sample Table
 ( SNo int,
   revenue int,
   date datetime,
   Loading varchar(20)
 )

Insert into @Sample
values 
(1, 8989898,'10/07/12','Before Load'),
(2,2124124 ,'10/07/12','After Load')

 SELECT  
((cast(a.revenue as float) - cast(b.revenue as float))/cast(a.revenue as float))*100.0 AS     diff
FROM @Sample a
LEFT OUTER JOIN @Sample b
ON  b.Sno = (a.Sno +1)

如果revenue列的数据类型为float,则无需强制转换。 编辑:

 SELECT  
cast(((cast(f.revenue as float) - cast(f2.revenue as float))/cast(f.revenue as float))*100.0 as varchar(max))+'%'
 AS diff
FROM @Sample f
LEFT OUTER JOIN @Sample f2
ON  f2.Sno = (f.Sno +1)

答案 1 :(得分:0)

select convert(varchar,((t.revenue - tt.revenue)*100)/(t.revenue)) +'%'   as value
from dbo.Table_1 t
inner join dbo.Table_1 tt on tt.data = t.data and t.loading = 'Before Load' and tt.loading = 'After Load'

假设在单个日期

之前只存在一个加载前(和加载后)