2016-09-12 18 views
2

私のクエリは2つのテーブルからデータを取得し、それらを結合して1つの出力として出力します。サブクエリはエラーなしで動作します。しかし、私は全体のクエリを実行するとき、私はこのようなエラーを取得します。SQL Serverの「算術オーバーフローエラーがvarcharをデータ型数値に変換する」エラーを解決するにはどうすればよいですか?

varcharをデータ型数値に変換する算術オーバーフローエラー。

これは私のクエリ

SELECT a.REF_NO + ' - ' 
     + (SELECT DISTINCT (c.c_name) 
      FROM C_MASTER c, 
       A_MASTER a 
      WHERE a.c_no = c._NO) AS refer 
FROM [A_MASTER] a, 
     [C_MASTER] c 
WHERE a.c_no = c._no 
ORDER BY a.REF_NO 

REF_NOは、数値データ型です。

+0

例データと望ましい結果を表示します。 –

+0

の結果は次のようになります。> 10001 - annual competition – Mike

答えて

3

はこれを試してみてください:

select CAST(a.REF_NO AS VARCHAR(100)) 
     +' - ' 
     +(select distinct (c.c_name) from C_MASTER c, A_MASTER a 
      where a.c_no=c._NO) as refer 
from [A_MASTER] a, [C_MASTER] c 
where a.c_no=c._no 
order by a.REF_NO 

は全体的に、これは私にずさんなクエリのように見えますが、私はあなたの結果に欲しいもの、あなたが何をしようとしての詳細説明もなく、それを改善することはできませんあなたのテーブルはどのように見えますか?また、結合を使用していない理由はありますか?

+0

@Stam私はこのように例外を受け取ります。 "DataBinding: 'System.Data.DataRowView'に 'REF_NO'という名前のプロパティが含まれていません。 – Mike

+1

@ user6592730 'REF_NO'をエイリアスとして列に追加する必要があります。元のクエリがうまくいけば、同じエラーが発生しているでしょう。 - REF_NO列はありません。 – Luaan

+0

@Stam、それは動作します。答えてくれてありがとう。 – Mike

1

次のクエリを試してみてください。 クエリの作成時にカンマでテーブルを区切るのではなく、結合を使用します。

Select distinct cast(a.ref_no as VARCHAR(50))+'-'+c.c_name 
from C_MASTER c 
     Join A_MASTER a 
         On a.c_no=c._NO 
関連する問題