在dbeaver中hive,明明每个子查询都起别名了,还是一直报错:SQL 错误 [40000] [42000]: Error while compiling statement: FAILED: ParseException line 43:3 cannot recognize input near '(' 'SELECT' 'DPST_ACCT_CD' in joinSource
```sql
INSERT INTO table TMP_F_DPST_ACCT
SELECT
A.DPST_ACCT_CD ,
A.ODS_STR_DT ,
A.ODS_CHAIN_FLG ,
A.ACCT_NM ,
A.ACCT_SHRT_NM ,
A.ACCT_TP ,
A.CUST_CD ,
A.MRGN_DPST_FLG ,
A.CARD_FLG ,
A.OPN_ACCT_DT ,
A.EXPR_DT ,
A.OPN_ACCT_ORG_CD ,
A.ACCTNG_ORG_CD ,
A.ACCT_MNGR ,
A.DPST_ACCT_STS ,
A.VCHR_STS ,
A.VCHR_TP ,
A.VCHR_NO ,
A.SRC_SYS_CD ,
A.UNQ_ID_IN_SRC_SYS ,
A.ODS_CMP_COL_MD5 ,
CASE WHEN
A.DPST_ACCT_CD||'N' = B.DPST_ACCT_CD||'N' AND
A.ODS_CMP_COL_MD5||'N' != B.ODS_CMP_COL_MD5||'N' THEN '1'
--表示该表在源表取的字段已有更新,更新数据无效日期并且插入新链
WHEN
A.DPST_ACCT_CD||'N' = B.DPST_ACCT_CD||'N' AND
A.ODS_CMP_COL_MD5||'N' = B.ODS_CMP_COL_MD5||'N' AND
A.ODS_CHAIN_FLG = 'N' THEN '3'
--表示该表在源表取得字段未发生改变,但已经无效,更新数据无效日期
WHEN
A.DPST_ACCT_CD||'N' = B.DPST_ACCT_CD||'N' AND
A.ODS_CMP_COL_MD5||'N' = B.ODS_CMP_COL_MD5||'N' AND
A.ODS_CHAIN_FLG = 'Y' THEN ' '
--表示该表在源表未取得字段发生了改变,但不影响目标表,不做处理
ELSE '2' END
--表示该条数据新增
FROM( (
SELECT
DPST_ACCT_CD,
ODS_STR_DT,
ODS_CHAIN_FLG,
ACCT_NM,
ACCT_SHRT_NM,
ACCT_TP,
CUST_CD,
MRGN_DPST_FLG,
CARD_FLG,
OPN_ACCT_DT,
EXPR_DT,
OPN_ACCT_ORG_CD,
ACCTNG_ORG_CD ,
ACCT_MNGR,
DPST_ACCT_STS,
VCHR_STS,
VCHR_TP,
VCHR_NO,
'CBS' AS SRC_SYS_CD,
'DPSACCOUNTINFO#'||DPST_ACCT_CD AS UNQ_ID_IN_SRC_SYS,
md5(ACCT_NM||'#'||ACCT_SHRT_NM||'#'||ACCT_TP||'#'||CUST_CD||'#'||MRGN_DPST_FLG||'#'||CARD_FLG||'#'||OPN_ACCT_DT||'#'||EXPR_DT||'#'||OPN_ACCT_ORG_CD||'#'||ACCTNG_ORG_CD||'#'||ACCT_MNGR||'#'||DPST_ACCT_STS||'#'||VCHR_STS||'#'||VCHR_TP||'#'||VCHR_NO) AS ODS_CMP_COL_MD5
FROM (
SELECT
T1.ACCTNO AS DPST_ACCT_CD,
DATE_FORMAT((cast('20240725' as date),'yyyyMMdd')) AS ODS_STR_DT,
T1.ODS_FLG AS ODS_CHAIN_FLG,
T1.CUSTNAME AS ACCT_NM,
T1.SHTNAME AS ACCT_SHRT_NM,
T1.SIGACCFLG AS ACCT_TP,
T2.CUSTOMID AS CUST_CD,
CASE TRIM(T1.MARGINFLG) WHEN '1' THEN 'Y' WHEN '0' THEN 'N' ELSE TRIM(T1.MARGINFLG) END AS MRGN_DPST_FLG,
CASE TRIM(T1.CRDFLG) WHEN '1' THEN 'Y' WHEN '0' THEN 'N' ELSE TRIM(T1.CRDFLG) END AS CARD_FLG,
REPLACE(T1.OPENDATE,'-','') AS OPN_ACCT_DT,
REPLACE(T1.VALIDDATE,'-','') AS EXPR_DT,
T1.OPENBRC AS OPN_ACCT_ORG_CD,
T1.PROFITBRC AS ACCTNG_ORG_CD,
T1.ACCMANG AS ACCT_MNGR,
T1.ACCSTAT AS DPST_ACCT_STS,
T1.OPNVOUFLG AS VCHR_STS,
T1.VOUKIND AS VCHR_TP,
T1.VOUNO AS VCHR_NO
FROM ((select * from O_CBS_DPSACCOUNTINFO) T1
LEFT JOIN (select * from O_CBS_CISCUSTACCINFO) T2
ON T1.ACCTNO = T2.ACCTNO ) d
WHERE T1.ODS_DATA_DT = DATE_FORMAT((cast('20240725' as date),'yyyyMMdd')) ) c ) A
LEFT JOIN
(SELECT * FROM F_DPST_ACCT
WHERE ODS_END_DT = DATE_FORMAT(cast('29991231' as date),'yyyyMMdd')) B
ON A.UNQ_ID_IN_SRC_SYS = B.UNQ_ID_IN_SRC_SYS );
```