SELECT ITEMGROUPID ,
ITEMID ,
ITEMNAME ,
ITEMTYPE ,
COSTGROUPID ,
SALESMODEL ,
DIMENSION ,
( SELECT DESCRIPTION
FROM DIMENSIONS
WHERE ( NUM = 0 )
AND ( DIMENSIONCODE = IT1.DIMENSION )
) AS Expr1
FROM INVENTTABLE AS IT1
WHERE ( DATAAREAID = 'm02' )
AND ( ITEMGROUPID = 'FG' )
AND ( ITEMID = '14901C' )
此查询引发错误。结果应该是从int
列获取值IT1.DIMENSION
并搜索Dimension
表并从{ {1}}表。
执行时出现以下错误:
转换失败。将NVARCHAR值'AG'转换为数据类型INT时。
此处的目标是消除在上述两个表nvarchar
和DIMENSIONS
之间使用左外连接。
答案 0 :(得分:0)
在SQL Server中,您可以通过
执行此操作... DIMENSIONCODE =转换(int,IT1.DIMENSION)......
然而,这使得IT1.Dimension列的内容实际上是数字的慷慨假设。如果,在某些情况下,它不包含可以转换为整数的东西,那么你必须记录为
... DIMENSIONCODE = Convert(int,iif(isnumeric(IT1.DIMENSION)= 1,IT1.DIMENSION,“1”))...
如果IT1.DIMENSION不是有效数字,则在表达式结果中强制使用“1”。由于您没有具体说明您正在使用哪个数据库,因此可能需要使用一些变体。