1

我已将 oracle 查询转换为低于标准 bq 但在最后一个语句(IN subquery)中。我收到错误:

“在连接谓词中不支持 IN 子查询。”

请在下面的代码中告知如何在 bq 中使用 IN 子查询

  #Last part of the code
 INNER JOIN (
 SELECT
    DISTINCT `domain-rr.oracle_DB_DB.he_project_assoc`.PARENT_ISBN 
    PARENT_ISBN,
    SUM (`domain-rr.DB_RPT.PROJECT_GR_QTY`.GR_QTY) GR_QTY
 FROM
     `domain-rr.oracle_DB_DB.he_project_assoc`
     INNER JOIN
     `domain-rr.DB_RPT.PROJECT_GR_QTY`
 ON
    `domain-rr.oracle_DB_DB.he_project_assoc`.child_ISBN = `domain- 
    rr.DB_RPT.PROJECT_GR_QTY`.BIC_GCISBN
    AND `domain-rr.oracle_DB_DB.he_project_assoc`.BREAK_LABEL <> 
  'Associated ISBNs'
  GROUP BY
    `domain-rr.oracle_DB_DB.he_project_assoc`.PARENT_ISBN) xx
ON
  yy.PARENT_ISBN = xx.PARENT_ISBN
  AND yy.CIRCULATION_INT < xx.GR_QTY
  AND yy.PARENT_ISBN IN 
  ( SELECT
    DISTINCT _BIC_GCISBN
   FROM
    `domain-rr.DB_RPT.BIC_GM_AGCPOAODS00_BO_VW`
  INNER JOIN
    `domain-rr.oracle_DB_boadmin.fiscal_bo`
  ON
    _BIC_ZC2GRIRIN = 'G'
    AND _BIC_ZCLOEKZ = ' '
    AND SUBSTR (BOUND_DATE, 1, 6) = `domain- 
rr.oracle_DB_boadmin.fiscal_bo`.PRIOR_FISC_YEAR_MONTH )
4

1 回答 1

1

你可以这样试试:

Select * from (
     #Last part of the code
     INNER JOIN (
     SELECT
        DISTINCT `pearson-rr.oracle_grdw_grdw.he_project_assoc`.PARENT_ISBN 
        PARENT_ISBN,
        SUM (`pearson-rr.GRDW_RPT.PROJECT_GR_QTY`.GR_QTY) GR_QTY
     FROM
         `pearson-rr.oracle_grdw_grdw.he_project_assoc`
         INNER JOIN
         `pearson-rr.GRDW_RPT.PROJECT_GR_QTY`
     ON
        `pearson-rr.oracle_grdw_grdw.he_project_assoc`.child_ISBN = `pearson- 
        rr.GRDW_RPT.PROJECT_GR_QTY`.BIC_GCISBN
        AND `pearson-rr.oracle_grdw_grdw.he_project_assoc`.BREAK_LABEL <> 
      'Associated ISBNs'
      GROUP BY
        `pearson-rr.oracle_grdw_grdw.he_project_assoc`.PARENT_ISBN) xx
    ON
      yy.PARENT_ISBN = xx.PARENT_ISBN
      AND yy.CIRCULATION_INT < xx.GR_QTY
   ) AA
      where AA.PARENT_ISBN IN 
      ( SELECT
        DISTINCT _BIC_GCISBN
       FROM
        `pearson-rr.GRDW_RPT.BIC_GM_AGCPOAODS00_BO_VW`
      INNER JOIN
        `pearson-rr.oracle_grdw_boadmin.fiscal_bo`
      ON
        _BIC_ZC2GRIRIN = 'G'
        AND _BIC_ZCLOEKZ = ' '
        AND SUBSTR (BOUND_DATE, 1, 6) = `pearson- 
    rr.oracle_grdw_boadmin.fiscal_bo`.PRIOR_FISC_YEAR_MONTH )
于 2019-08-13T07:50:18.940 回答