为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:1-3-162-2024.08.12-238838-20108-ENT
【操作系统】:麒麟
【CPU】:鲲鹏
【问题描述】*:with record_ as (
select job_id,oper,report_state from (
select a.job_id, a.oper, a.report_state, a.id,row_number() over(partition by a.job_id,a.report_state order by id desc) rn
from dcab_report_state_record a
where a.opflag = 'UPDATE'
and a.oper <> 'handle'
) where report_state in (1,2) and rn = 1
)
SELECT
DISTINCT
decode(nvl(a.DEF_FILED1,'0'),'demand','demand','0') as "defFiled1",
A.BSQJ "name",
A.BSQJ "value",
A.SJRQ "dataDate"
FROM DCAB_REPORT_STATE A
LEFT JOIN DCAB_BS_BSNR B ON A.BSNRBH = B.BSNRBH
left join record_ t1 on t1.job_id = a.id and t1.report_state = 1
left join record_ t2 on t2.job_id = a.id and t2.report_state = 2
left join dcab_report_biz_process_state c on a.id = c.report_id
WHERE A.LOCKED = 0
and
a.report_state in (2,3,-3) 这个语句执行提示重复的表名或者别名,定位是这块导致的
该语句在达梦8.1中可以成功执行,具体的版本为:1-2-114-22.05.09-160333-10045-ENT ,截图如下:
在达梦8.4的版本中,提示重复的表名或者别名,截图如下:
,请问这个是否由dm.ini中的参数进行控制,需要如何处理,麻烦尽快回复一下,感谢
WITH record_state1 AS (
SELECT job_id, oper, report_state FROM (
SELECT
a.job_id,
a.oper,
a.report_state,
a.id,
ROW_NUMBER() OVER(PARTITION BY a.job_id, a.report_state ORDER BY id DESC) rn
FROM dcab_report_state_record a
WHERE a.opflag = 'UPDATE'
AND a.oper <> 'handle'
)
WHERE report_state = 1 AND rn = 1
),
record_state2 AS (
SELECT job_id, oper, report_state FROM (
SELECT
a.job_id,
a.oper,
a.report_state,
a.id,
ROW_NUMBER() OVER(PARTITION BY a.job_id, a.report_state ORDER BY id DESC) rn
FROM dcab_report_state_record a
WHERE a.opflag = 'UPDATE'
AND a.oper <> 'handle'
)
WHERE report_state = 2 AND rn = 1
)
SELECT
DISTINCT
DECODE(NVL(a.DEF_FILED1,'0'),'demand','demand','0') AS "defFiled1",
A.BSQJ "name",
A.BSQJ "value",
A.SJRQ "dataDate"
FROM DCAB_REPORT_STATE A
LEFT JOIN DCAB_BS_BSNR B ON A.BSNRBH = B.BSNRBH
LEFT JOIN record_state1 t1 ON t1.job_id = a.id
LEFT JOIN record_state2 t2 ON t2.job_id = a.id
LEFT JOIN dcab_report_biz_process_state c ON a.id = c.report_id
WHERE A.LOCKED = 0
AND a.report_state IN (2,3,-3)
这个应该是有表名的别名是重复的,导致没有办法判断