Sql server SQL Server 2008 r2,将int转换为十进制时出现问题

Sql server SQL Server 2008 r2,将int转换为十进制时出现问题,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,我试图做一个从int到decimal的基本转换,但它不起作用。我已经尝试过在插入之前进行演员表演,没有更好的了。我想使用十进制值来显示百分比变化。下面是代码和输出。任何帮助都会很好 DECLARE @tblVar TABLE (LatestCount INT, PriorCount INT, PctChgLatestVsPrior DECIMAL, PctChgLatestVsAvg DECIMAL) DECLARE @tbl CHAR(30)

我试图做一个从int到decimal的基本转换,但它不起作用。我已经尝试过在插入之前进行演员表演,没有更好的了。我想使用十进制值来显示百分比变化。下面是代码和输出。任何帮助都会很好

DECLARE @tblVar TABLE (LatestCount INT, PriorCount INT, 
                       PctChgLatestVsPrior DECIMAL, PctChgLatestVsAvg DECIMAL)

DECLARE @tbl CHAR(30)
DECLARE @dte DATE
DECLARE @dte2 DATE
DECLARE @latestCount INT
DECLARE @priorCount INT
DECLARE @avgAllCounts INT

SET @tbl = 'tblDailyPricingAndVol'
SET @dte = '5/8/12'
SET @dte2 = '5/7/12'

EXEC spAvgOfCountByDateAddedByTable @tbl, @avg = @avgAllCounts OUTPUT
EXEC spCountOfDateAddedByTableAndDate @tbl, @dte, @count = @latestCount OUTPUT
EXEC spCountOfDateAddedByTableAndDate @tbl, @dte2, @count = @priorCount OUTPUT

INSERT INTO @tblVar 
VALUES (@latestCount, @priorCount, 
    CAST((@latestCount-@priorCount) AS DECIMAL)/CAST(@priorCount AS DECIMAL), 
    CAST((@latestCount-@avgAllCounts) AS DECIMAL)/CAST(@avgAllCounts AS DECIMAL))

SELECT * FROM @tblVar
输出:

19548
7107
8483

LatestCount PriorCount  PctChgLatestVsPrior PctChgLatestVsAvg
7107        8483        0                   -1

您需要给出小数比例/精度

请看这里:

一些示例:十进制(30,10)或十进制(20)


有关详细信息,请参阅联机丛书

您需要给出小数位数/精度

请看这里:

一些示例:十进制(30,10)或十进制(20)


更多信息请参见联机书籍

“它不起作用”并不是对实际问题的一个很好的描述。什么不起作用?是吗?评论中“它不起作用”之前的部分。演员阵容。“它不起作用”并不是对实际问题的一个很好的描述。什么不起作用?确切地说?注释中“它不工作”之前的部分。演员阵容+1 OP应该尝试以下操作:
SELECT CONVERT(十进制,3.567)并阅读此内容(这同样适用于
十进制
当然):谢谢。。。我在一个简单的select语句中有非常相似的代码,它的工作原理与我预期的一样,也许它在存储过程中的执行方式不同。+1 OP应该尝试以下操作:
selectconvert(DECIMAL,3.567)并阅读此内容(这同样适用于
十进制
当然):谢谢。。。我在一个简单的select语句中有非常相似的代码,它的工作原理与我预期的一样,也许它在存储过程中的执行方式不同。