2017-04-18 8 views
0

を使用して数値新しい列を選択すると、クエリです:私は、SQL Serverの下に2008年にユニオンクエリを書かれているユニオンクエリ

select cast(i.AMT_SETT as decimal(10,2)) as AMT_SETT 
from DIB_ERECON_INSIGHT_VISA i 

union 
select NULL as AMT_SETT from DIB_ERECON_TRAN_DETAILS d 
where d.channeltype = 'VISA' and cast(fieldno_1 as date) = '18-Apr-2017' and 
not exists(
       select 1 from DIB_ERECON_INSIGHT_VISA i 
       where i.STAN= d.fieldno_38 and replace(d.fieldno_39,':','') = i.TIME_LOC_TRAN and 
       cast(i.Amount as numeric(18,0)) = cast(d.fieldno_31 as numeric(18,0)) 
      ) 

私はこのエラーを取得する:

Error converting data type varchar to numeric. 

私がしようとした場合'' の代わりに、AMTT_SETT列の2番目のクエリで同じエラーが発生する

+0

あなたは何の結果を得るのですか? –

+1

最初のSELECTステートメントのエラー。値の一部が数字ではなく文字列 –

+0

ISNUMERIC()で0を返す行が見つかりましたか? –

答えて

1

Y AMT_SETT、Amountおよびfieldno_31列のすべての値が数値であることを確認する必要があります。関数ISNUMERIC(yourcolumn)を使用して、列に格納されているすべての非数値を検出することができます。

+0

カラムは数値です。 – user7543912

+0

はSQLデータベースで正常に動作していますが、excelにエクスポートすると自動的に切り捨てられます。停止する方法はありますか?それはExcelやデータの問題ですか? – user7543912

+0

エクスポート操作はどのようにしましたか? –

1

最初のselect文からのエラーです。値の一部は数値ではなく文字列です。データを調べて、数値以外の値を持つ行を確認してください。

あなたは簡単に以下のようにその行を取得することができます:あなたは `UNION`の最初のクエリを実行した場合

SELECT * FROM TABLE WHERE ISNUMERIC(ColumnName)=0 
関連する問題