2016-04-05 10 views
1

が必要:SQLインナーヘルプに参加し、私は以下の次のクエリ持っ

SELECT 
[dbo].[history].histtable, 
[dbo].[history].code, 
[dbo].[history].Date, 
dbo.Activities.Number, 
dbo.table1.Itemnumber 

FROM [dbo].[History] 
INNER JOIN 
[dbo].[Activities] 
ON 
[dbo].[History].Flags=[dbo].[Activities].Objects 

INNER JOIN dbo.table1 
On 
CONVERT (Int, dbo.table1.Itemnumber) = CONVERT (INT, dbo.history.Date) 
OR CONVERT (Int, dbo.tablenumber.Itemnumber) = dbo.Activities.Alltransactions 

ORDER BY 3 DESC 

を、私は次のエラーを取得しておいてください。

Conversion failed when converting the varchar value Itemnumber to data type int.

私はこの問題を解決するために何ができますか?

+3

のようなものint。そして値がintであると期待したら、intとして保存してください! –

+0

私の答えがあなたを助けてくれることを願っています。もし答えがあれば記入してください。 – workabyte

答えて

1

あなたはより良いあなたの問題を識別して、値のような

何か数値ではないものを見ることができるようにあなたが参加している各テーブルに別々の選択を行うと、数値ではない行だけを引き出すためにISNUMERICを使用することができます

select Itemnumber 
from dbo.table1 
where IsNumeric(Itemnumber) = 0 

かで参加し、私は実際にに変換できない列ItemNumberの値を探します

INNER JOIN dbo.table1 
On IsNumeric(dbo.table1.Itemnumber) = 1 
and 
(
    CONVERT (Int, dbo.table1.Itemnumber) = CONVERT (INT, dbo.history.Date) 
OR 
    CONVERT (Int, dbo.tablenumber.Itemnumber) = dbo.Activities.Alltransactions 
) 
関連する問題