无法获得正确的查询

时间:2013-01-31 15:07:01

标签: sql sql-server

我有一个名为Datatable的表。它有一个名为data的列。

data  
-------
10       
20    
30

我需要一个列

data  
-------
10/60   
20/60   
30/60  

我把查询写成

select data/sum(data) 
  from datatable;

5 个答案:

答案 0 :(得分:3)

对于SQL Server 2005+,您可以这样做:

SELECT CAST(data AS VARCHAR(10)) + '/' + CAST(SUM(data) OVER() AS VARCHAR(10))
FROM Datatable

答案 1 :(得分:2)

试,

select a.data / b.total       -- will result the quotient of 10/60
from   datatable a, 
       (select SUM(data) total from datatable) b

但是如果你想将它连接起来

select a.data + '/' + b.total -- will result literal string value of 10/60
from   datatable a, 
       (select SUM(data) total from datatable) b

答案 2 :(得分:0)

这适用于SQL Server 2005或更高版本:

declare @t table (data int)
insert into @t (data) values (10),(20),(30)

select (data * 1.0)/ SUM(data) OVER () from @t

答案 3 :(得分:0)

在整个表格(sum)上使用窗口函数over ()

select  1.0 * data / sum(data) over ()
from    tableName

Example at SQL Fiddle.

答案 4 :(得分:-1)

我不确定60值来自何处,但我会做这样的事情:

select data + '/' + sum(data) from datatable group by data

要连接,请查看以下链接: http://msdn.microsoft.com/en-us/library/aa276862(v=sql.80).aspx

希望这有帮助。