错误转换数据类型折扣金额与固定金额

时间:2017-01-16 14:05:33

标签: sql

美好的一天

这是我正在使用的代码,它给出了错误“将数据类型varchar转换为数字时出错”

select  InvPrice.StockCode, InvPrice.SellingPrice, 
        SorContractPrice.StartDate, SorContractPrice.ExpiryDate,    SorContractPrice.PriceMethod, SorContractPrice.FixedPrice,          SorContractPrice.Discount1,InvPrice.SellingPrice

From    InvPrice 

Inner Join 
        SorContractPrice
        on SorContractPrice.StockCode = InvPrice.StockCode

where SorContractPrice.PriceMethod IN 
(case when SorContractPrice.PriceMethod = 'F' then SorContractPrice.FixedPrice
            when SorContractPrice.PriceMethod = 'D' then  InvPrice.SellingPrice - SorContractPrice.Discount1
            else SorContractPrice.FixedPrice
            end)

我需要从固定价格中扣除折扣,或者它应该保留为固定价格。

对不起我是sql的新手

非常感谢您的协助。

1 个答案:

答案 0 :(得分:0)

您可以在其中一个要用于减去的项目上使用try_convertconvert方法也有效。 [如果第一个项目不起作用,您可以在备用项目上尝试。但是如果你已经知道哪一个拥有varchar值,那么就在那个值上使用它。]你基本上可以将它们转换为相同的值(浮点数或数值)

如果您需要有关如何使用这些内容的简短指南,请点击此处:http://sqlhints.com/2013/06/08/try_convert-sql-server-2012-built-in-conversion-function/

但请记住,如果它根本不能,它将不会为你转换它。如果它不能表示您用于varchar的数据很可能不是数字等。

另外,@ KD评论说,cast也有帮助。

希望这可以帮助你。