我正在尝试在两个不同表中的两个不同名称的列上创建一个UNION ALL查询。查询比较两个不同表中两列的差异
我想采取USER_EXCEL表中的“MTRL”列,并将其与IM_EXCEL表中的“short_material_number”列进行比较。然后,我想查询只返回两列之间的区别。两列都包含材料编号,但在表格中以不同方式命名(列明)。
我至今是:
(SELECT [MTRL] FROM dbo.USER_EXCEL
EXCEPT
SELECT [short_material_number] FROM dbo.IM_Excel)
UNION ALL
(SELECT [short_material_number] FROM dbo.IM_Excel
EXCEPT
SELECT [MTRL] FROM dbo.USER_EXCEL)
但是,试图运行该查询我收到一条错误消息时:
消息8114,级别16,状态5,行22
将数据类型varchar转换为float时出错。
我的猜测是,一个的列包含数字值和其他文本。查询是隐式尝试将文本转换为数值,其中一个记录包含无法转换的文本值。 – Barry 2014-10-17 18:42:30
@巴里是啊,就是这样。当然。 – 2014-10-17 18:47:31
请添加“MTRL”和“short_material_number”的数据类型 – Ram 2014-10-17 18:50:53