SQL 需要内部联接帮助
SQL Inner Join Help Needed
我有以下查询:
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.
我该怎么做才能解决这个问题?
您可以为每个要加入的 table 做一个单独的 select 并使用 ISNUMERIC 只提取非数字的行,这样您可以更好地识别您的问题并查看哪些值不是数字
类似于
select Itemnumber
from dbo.table1
where IsNumeric(Itemnumber) = 0
或者在你加入时,类似
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
)
我有以下查询:
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.
我该怎么做才能解决这个问题?
您可以为每个要加入的 table 做一个单独的 select 并使用 ISNUMERIC 只提取非数字的行,这样您可以更好地识别您的问题并查看哪些值不是数字
类似于
select Itemnumber
from dbo.table1
where IsNumeric(Itemnumber) = 0
或者在你加入时,类似
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
)