sql - 在子查询中定义不明确的列与另一个子查询的连接
问题描述
加入两个子查询时,我不断收到一列定义不明确的错误。但是我已经正确定义了我的所有列。我想从第一个查询中获取所有数据,并在可用的地方添加一些数据。如何解决这个问题?
SELECT
sq2.month,
sq1.PRIMARY_MER_NUM ,
sq1.PRIMARY_EXT_MID ,
sq1.MER_DBA_NAM,
sq1.CLG_NUM,
sq1.ENT_NUM,
sq1.ENT_NAM,
sq1.MER_OPN_DTE,
sq1.MER_CLS_DTE,
sq1.MER_FST_DPST_DTE,
sq1.CLG_NUM ,
sq1.ENT_NUM,
sq2.gross_volume,
sq2.transaction_count
FROM
(SELECT DISTINCT
PRIMARY_MER_NUM ,
PRIMARY_EXT_MID ,
MER_DBA_NAM,
CLG_NUM,
ENT_NUM,
ENT_NAM,
MER_OPN_DTE,
MER_CLS_DTE,
MER_FST_DPST_DTE,
CLG_NUM ,
ENT_NUM
FROM
bi.t_mer_dim_na
WHERE
CLG_NUM = 7
AND ENT_NUM IN ('45810', '45811', '46849', '45948', '45824',
'46911', '45509', '46845', '48902')
) sq1
LEFT JOIN
(SELECT
TRUNC(BAT_REF_DTE, 'MM') AS month,
MER_NUM,
SUM(bat_prd_trn_dr_amt + bat_prd_trn_cr_amt) AS gross_volume,
SUM(bat_item_num) AS transaction_count
FROM
TDS.BAT_T3
WHERE
1 = 1
AND bat_ref_dte >= TRUNC(sysdate, 'MM')
GROUP BY
TRUNC(BAT_REF_DTE, 'MM'), MER_NUM) SQ2 ON sq1.primary_mer_num = sq2.MER_NUM;
解决方案
您在第一个派生表CLG_NUM
中ENT_NUM
选择了两次SQL1
FROM (
select DISTINCT
PRIMARY_MER_NUM ,
PRIMARY_EXT_MID ,
MER_DBA_NAM,
CLG_NUM, --1
ENT_NUM, --1
ENT_NAM,
MER_OPN_DTE,
MER_CLS_DTE,
MER_FST_DPST_DTE,
CLG_NUM, --2
ENT_NUM --2
from bi.t_mer_dim_na
这使得在您的外部选择中选择sql1.CLG_NUM
和sql1.ENT_NUM
模棱两可(您还选择了两次)
推荐阅读
- .net - 没有选择项的组合框。仅弹出复选框
- flutter - 使用 http multipart 上传图片。如果图像为空,则出现错误
- java - 如何在android studio中将下载的声音设置为铃声?
- css - flex问题将2个孩子对齐在父母的中心和右侧
- python - Python-docx 不向文档添加图片但没有给出错误
- jakarta-ee - javax.ejb.EJBAccessException 使用 CustomAuthMechanism 登录后用户无效,但我有权访问 page.xhtml
- sql - 用于根据条件查找几个最大日期的 SQL 查询
- sqlite - Xamarin sqlite DB 始终不返回任何内容
- java - CreateProcessAsUserW 错误代码 6 无效的句柄 JNA
- python - get(请求模块)请求(找不到页面)的错误是什么?