2017-01-16 4 views
0

良い日はエラーの変換データ型の割引額

これは私が使用していたコードであり、それは私が控除する必要が

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) 

「数字にデータ型varchar型の変換エラー」エラーになります固定価格からの割引は、代わりに固定価格として留まるべきである。

は申し訳ありませんが、私はあなたの助けが高く評価されて

SQLのは非常に新しいです。

+0

さまざまなデータタイプを比較しようとしているようです。いくつかのコードを削除して、エラーがまだあるかどうかを確認します。問題の構築が見つかるまで、コードをいくつか削除します。 – jarlh

+0

(1)使用しているデータベースで質問にタグを付けてください。 (2)照会で使用されるすべての列のタイプを識別する。あなたのエラーは 'PriceMethod'が文字列で' case'が数値を返す可能性が高いですが、それは単なる推測です。 –

+1

"SellingPrice"と "Discount1"を同じデータ型に変換しようとします。 CAST(SellingPriceAS float) - CAST(FloatとしてのDiscount1) –

答えて

0

try_convertは、マイナスに使用するアイテムの1つに使用できます。 convertメソッドも機能します。 [最初の項目が機能しない場合は、代替項目で試すことができます。しかし、あなたがすでにvarcharの値を保持していることがわかっている場合は、その値をそのまま使用してください。]両方の値を同じ値(浮動小数点数)に変換できます。

使用方法それらは、ここにあります:http://sqlhints.com/2013/06/08/try_convert-sql-server-2012-built-in-conversion-function/

しかし、それは単にあなたがそれを傾けることはできません覚えておいてください。できない場合は、varcharに使用しているデータが数字などではない可能性があります。

また、@KDがコメントしたのはcastです。

これがあなたを助けてくれることを願っています。

関連する問題