Sql 使用精度计算数量
我有一个工资表,它有Sql 使用精度计算数量,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个工资表,它有金额和金额精度列 使用精度,我想得到实际的数量 请帮助我使用精度计算实际金额。使用。要将整数中的金额转换为十进制 ActualAmount = Amount * 1.0 / Power(10, AmountPrecision) 您可以使用以下查询: select CAST(Amount as double precision) / power(10, AmountPrecision) from AmountTest 假设AmountTest是表的名称。您可以将其替换为
金额
和金额精度
列
使用精度,我想得到实际的数量
请帮助我使用精度计算实际金额。使用。要将整数中的金额
转换为十进制
ActualAmount = Amount * 1.0 / Power(10, AmountPrecision)
您可以使用以下查询:
select CAST(Amount as double precision) / power(10, AmountPrecision) from AmountTest
假设AmountTest是表的名称。您可以将其替换为您指定的名称。您也可以通过使用REPLICATE()
函数创建值来尝试除法
DECLARE @T TABLE (
Amount INT,
AmountPrecision INT
)
INSERT INTO @T VALUES(1,1),(51,1),(51,2),(934,3),(1024,2)
SELECT
*,
CAST(AMOUNT AS FLOAT)/(CONCAT(1,REPLICATE(0,AMOUNTPRECISION))) AS ACTUALAMOUNT
FROM @T
CREATE TABLE Data (id int, AmountPrecision int)
INSERT INTO Data (id, AmountPrecision) VALUES
(1, 1)
, (51, 1)
, (51, 2)
, (934, 3)
, (1024, 2)
Select id
, Cast('1' + REPLICATE('0', AmountPrecision) as int) as DivideBy
, Cast(id * 1.0 / Cast('1' + REPLICATE('0', AmountPrecision) as int)
as float) as FormattedNumber
from Data
现场演示