Hadoop 配置单元中的子查询不';行不通

Hadoop 配置单元中的子查询不';行不通,hadoop,hive,Hadoop,Hive,我有一个问题如下: SELECT T.MTH_END_DT, T.SRC_SYS_CD, T.BTCH_ID FROM PROD_RCRR.BAL_CNTRL_LOG T WHERE T.SRC_SYS_CD='SL' AND T.MTH_END_DT in (SELECT(MAX(MTH_END_DT)) FROM PROD_RCRR.BAL_CNTRL_LOG) AND T.BTCH_ID in (SELECT(MAX(BTCH_ID )) FROM PROD_RCRR.BAL_CNTRL_

我有一个问题如下:

SELECT T.MTH_END_DT, T.SRC_SYS_CD, T.BTCH_ID
FROM PROD_RCRR.BAL_CNTRL_LOG T
WHERE T.SRC_SYS_CD='SL'
AND T.MTH_END_DT in (SELECT(MAX(MTH_END_DT)) FROM PROD_RCRR.BAL_CNTRL_LOG)
AND T.BTCH_ID in (SELECT(MAX(BTCH_ID )) FROM PROD_RCRR.BAL_CNTRL_LOG)

错误消息显示配置单元只能支持一个“in”子句。有人能给我一个解决方案吗?

你可以用Join-ON子句替换整个问题

SELECT
    T.MTH_END_DT
  , T.SRC_SYS_CD
  , T.BTCH_ID
FROM PROD_RCRR.BAL_CNTRL_LOG T
JOIN ( SELECT
          MAX(MTH_END_DT) ENDT
        , MAX(BTCH_ID )   BTCH
       FROM PROD_RCRR.BAL_CNTRL_LOG ) X
  ON  T.SRC_SYS_CD='SL'
  AND T.MTH_END_DT = X.ENDT
  AND T.BTCH_ID = X.BTCH

使用一个连接获得两个条件的好方法。@RachaelLi感谢您的确认。你也可以勾选答案。