![](/img/trans.png)
[英]Msg 207, Level 16, State 1, Line 3 Invalid column name 'VSERV'
[英]SQL Msg 209, Level 16, State 1, Line 498 Ambiguous column name 'SupplyCode'
无论我做什么,我似乎都无法解决错误。
消息209,级别16,状态1,行498模糊的列名称“ SupplyCode”。
- H。 选择从未在工作中使用过的耗材的供应代码和描述。(2个标记)
select SupplyCode,Description, count(*) from JobSupply
inner join Supply
on Supply.SupplyCode = JobSupply.SupplyCode
group by Supply.SupplyCode
消息8120,级别16,状态1,行498在选择列表中的列“ Supply.Description”无效,因为它既不包含在聚合函数中也不包含在GROUP BY子句中。
这是我由Orignallay完成的操作,从Supply中选择Supply.SupplyCode,Description,count(jobNumber)
在Supply.SupplyCode上内部加入JobSupply = JobSupply.SupplyCode
按Supply.SupplyCode分组
Count(JobNumber)= 0
您需要在选定的列中限定SupplyCode,因为它不能与Supply中的SupplyCode和JobSupply中的SupplyCode明确区分。 尝试:
select S.SupplyCode,Description, count(*) from JobSupply
inner join Supply S on S.SupplyCode = JobSupply.SupplyCode
group by S.SupplyCode
由于两个引用表中都存在SupplyCode
列, SupplyCode
您必须在select语句中限定名称并指定应从哪个表中检索它。
您可能也考虑使用别名:
select s.SupplyCode, Description, count(*)
from JobSupply js
join Supply s on s.SupplyCode = js.SupplyCode
group by s.SupplyCode, description
附带一提,您提供的查询可能不会回答您要解决的问题。 ( 选择从未在工作中使用过的耗材的供应代码和描述 )
您可能希望使用左联接并过滤掉丢失的行,因为这些行应该是从未使用过的行。 或者,您可以使用具有exists
谓词的相关子查询:
像这样:
select SupplyCode, Description
from Supply s
where not exists (select 1 from jobsupply js where s.SupplyCode = js.SupplyCode)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.