Sql server Teradata中的歧义列

Sql server Teradata中的歧义列,sql-server,teradata,Sql Server,Teradata,我有一个表,其中一列有1对多关系。这是一个例子 table name service table column name service name, service ID, Service date, severity,service cost 现在,我试图拉所有然后有多个条目的基础上严重性,所以我这样做 select b.service_name,a.service_ID,a.Service_dt,Service_cost from dbo.table1 a inner join (se

我有一个表,其中一列有1对多关系。这是一个例子

table name service

table column name service name, service ID, Service date, severity,service cost
现在,我试图拉所有然后有多个条目的基础上严重性,所以我这样做

select b.service_name,a.service_ID,a.Service_dt,Service_cost 
from dbo.table1 a
inner join
(select distinct Service_n,Service_ID from table1 c) b
on a.service_id=b.service_id

这里,如果您观察到我试图从子查询而不是从主表中获取
服务名称,以避免在严重性方面选择相同的条目时获取多个条目。我得到一个错误消息ambigous column
service\u name

问题出在您的子查询选择列上

service_name
而不是

service_n
你可以试试这个

SELECT b.service_name, 
       a.service_id, 
       a.service_dt, 
       service_cost 
FROM   dbo.table1 a 
       INNER JOIN (SELECT DISTINCT service_name, 
                                   service_id 
                   FROM   table1 c) b 
               ON a.service_id = b.service_id 

我用这些字段创建了一个表,并且您的查询在我的操作中并没有出现任何错误(服务除外,我将其更改为服务名称)。您应该在这里学到的一课是始终指定列来自哪个表。这意味着主查询中的每一列和子查询中的每一列。从长远来看,它省去了那么多的头痛。先生,我试过了,但它给了我一个模棱两可的专栏name@RajivSrinivasanR不客气,如果答案对您有帮助,您可以标记:)