如何在SQL中更改临时表中的列的数据类型

roc*_*ock 2 t-sql sql-server temp-tables

有没有办法在将值保存到临时表时更改(增加)列的数据类型?

SELECT TableA.ID_NO, sum(TABLEA.COST * TABLEB.QTY) as TOTAL
INTO #matCalc
FROM TABLEA A 
INNER JOIN TABLEB 
ON A.ID_NO = B.ID_NO
Run Code Online (Sandbox Code Playgroud)

我们在实际查询中有更大的计算.当我们执行存储过程时,我们得到一个错误"算术溢出错误,将数字转换为数据类型数字".

非常感谢任何解决方案.

谢谢.

Aar*_*and 9

只需将数字显式转换为更大的类型.我使用18,2作为示例,但我不知道您的数据,因此不同的精度/比例可能对您更好:

SELECT TableA.ID_NO, 
  SUM(CONVERT(DECIMAL(18,2), TABLEA.COST) * TABLEB.QTY) as TOTAL
INTO #matCalc
FROM TABLEA A 
INNER JOIN TABLEB 
ON A.ID_NO = B.ID_NO;
Run Code Online (Sandbox Code Playgroud)