【发布时间】:2020-10-29 13:59:59
【问题描述】:
我有以下查询,我需要将 account_manager 列 = 到 prod_id 以分配客户经理名称,并对 client_id = prod_id 执行相同操作以获取 producer_name。我为生产者表创建了别名,但继续得到列定义不明确的错误。
Select rg.group_number, rg.group_name, qo.quote_id, qo.effective_date, qo.quote_type, qo.hra_ind, rg.account_manager, a.name as account_manager_name, rg.client_id, name as producer_name
From qo_quote qo,
re_group rg
JOIN producer a ON a.prod_id = rg.account_manager
JOIN producer b ON b.prod_id = rg.client_id,
( select distinct a.group_number, c.prospect_nbr
from re_current_benefits a,
qo_quote b,
qo_account c
where a.quote_id = b.quote_id and b.hra_ind = 'Y' and
a.group_number = c.group_number and c.hcr_ind = '3'
) q1
Where q1.prospect_nbr = qo.prospect_nbr and
q1.group_number = rg.group_number and qo.effective_date = rg.renewal_date and
qo.quote_type = 'B' and qo.quote_expiration_ind is null and qo.hra_ind is null and
qo.mhs_lob_code not in ('DTL1', 'DTL2', 'VIS1')
【问题讨论】:
-
请您重写您的 SQL 以使用 ANSI SQL 联接而不是 Oracle 联接语法。旧的 Oracle 语法不被认为是好的做法,并且难以区分 JOIN 逻辑和过滤器(WHERE 子句)逻辑
-
在
name,name as producer_name中缺少使用别名