模糊列名称'植物'

时间:2017-07-03 00:40:58

标签: sql sql-server

如何修复此错误?我已经尝试在我的sql脚本中寻找植物的双重声明,但我的脚本似乎没有任何问题。我所涉及/具有列名ID的所有其他sql连接无论如何都能正常工作。此外,当我尝试运行我的原始脚本

select tblCustomerList.CustomerName, tblPackages.Package,tblChangeLevels.ChangeLevels,tblDevices.Devices,tblPlant.Plant

from ATPChangeControlBoard.tblCCB 

inner join ATPChangeControlBoard.tblCustomerList
on ATPChangeControlBoard.tblCCB.custAffected=ATPChangeControlBoard.tblCustomerList.ID

inner join ATPChangeControlBoard.tblPackages
on ATPChangeControlBoard.tblCCB.packageAffected=ATPChangeControlBoard.tblPackages.ID

inner join ATPChangeControlBoard.tblChangeLevels
on ATPChangeControlBoard.tblCCB.changeLevel=ATPChangeControlBoard.tblChangeLevels.ID

inner join ATPChangeControlBoard.tblDevices
on ATPChangeControlBoard.tblCCB.devsAffected=ATPChangeControlBoard.tblDevices.ID

inner join ATPChangeControlBoard.tblPlant
on ATPChangeControlBoard.tblCCB.plant=ATPChangeControlBoard.tblPlant.ID;

它工作得很好,并且在工厂列上没有显示任何错误。

下面是我使用的实际代码的图片截图,显示了错误。 PLS。救命。 TIA。 :)

enter image description here

1 个答案:

答案 0 :(得分:2)

刚刚在另一个帖子上找到答案。

我将所有工厂/ [列名]声明更改为tblPlant.plant / [tablename]。[columnname],以直接区分具有相同列名的列。

在我的情况下,我在

的where子句中更改了我的代码
 and (@plant is null or plant= @plant)

and (@plant is null or tblPlant.plant= @plant)

虽然其他sql连接并没有要求我添加这样的额外代码,但是我这样做了,所以我只是添加了额外的代码到需要它的那个。

我在这里发现了一个评论的答案,因为我还不能进行评论或评论,我只是强调这是解决了我的问题的原因。 :)

Ambiguous column name error, how do I fix it?

by @JohnFx

他说那是

"问题是你还没有为字段指定表格名称" Flags"它可能存在于查询中的多个表中。以" Tablename.flags"格式添加表名称在所有引用的前面解决问题。"