操纵此数据以返回每个股票中客户持有的总价值(单位*价格)。
select sh.StockCode , sum(sh.Units*sp.PriceNZD) as 'TotalPrice'
from StockPrice sp
inner join StockHoldings sh on sp.StockCode=sh.StockCode
group by sh.StockCode
order by TotalPrice desc;
错误:消息8117,级别16,状态1,行1 操作数数据类型nvarchar对于乘法运算符无效。**
有什么想法吗?
答案 0 :(得分:0)
您必须将数据转换为正确的格式:
select sh.StockCode ,
sum(CAST(sh.Units AS INT)*CAST(sp.PriceNZD AS DECIMAL(18,2))) AS TotalPrice
from StockPrice sp
inner join StockHoldings sh on sp.StockCode=sh.StockCode
group by sh.StockCode
order by TotalPrice desc;
如果您使用SQL Server 2012+
,可以使用TRY_CAST
来避免无效转换(无效数据将被视为NULL)
正确的解决方案:使用正确的数据类型更改架构并存储数据。