在Union查询中返回SQL错误

时间:2011-07-14 14:58:30

标签: sql

收到错误“预期”gcv“和”AND“关键字之间的某些内容。现在我尝试在两者之间放置一个”WHERE“,我得到”'WHERE'关键字和“之间预期的东西AND“关键字。非常感谢任何帮助!

                            `SELECT  gcv.i_pln,
             gcv.c_typ_cov,
             gcv.d_eff,
             gcv.d_eff_pln,
             gcv.c_sta,
            gcv.d_sta,
            gcv.c_mde_bft_fst,
            gcv.a_bft_fst,
            gcv.c_mde_bft_sec,
             gcv.a_bft_sec,
            gcv.c_mde_bft_trd,
             gcv.a_bft_trd,
             gcv.p_cre_hom,
             gcv.c_cl_rsk,
             gpv.c_val

            FROM Pearl_P.tltc906_gcv gcv,

            pearl_p.tltc912_gpv gpv




           WHERE  gcv.i_pln > 0
            AND gcv.i_pln = gpv.i_pln
            AND gpv.i_prv = 36

         UNION

             SELECT
             gcv.i_pln,
             gcv.c_typ_cov,
             gcv.d_eff,
             gcv.d_eff_pln,
             gcv.c_sta,
             gcv.d_sta,
             gcv.c_mde_bft_fst,
             gcv.a_bft_fst,
             gcv.c_mde_bft_sec,
             gcv.a_bft_sec,
             gcv.c_mde_bft_trd,
             gcv.a_bft_trd,
             gcv.p_cre_hom,
             gcv.c_cl_rsk,
             ''


            FROM Pearl_P.tltc906_gcv gcv



            AND NOT EXISTS(
            SELECT 1
            FROM pearl_p.tltc906_gcv gcv,
             pearl_p.tltc912_gpv gpv

            WHERE  gcv.i_pln > 0
            AND gcv.i_pln = gpv.i_pln
            AND gpv.i_prv = 36)

`

4 个答案:

答案 0 :(得分:1)

WHERE NOT EXISTS

而不是

AND NOT EXISTS

答案 1 :(得分:0)

您需要修复此区域:

FROM Pearl_P.tltc906_gcv gcv
WHERE NOT EXISTS (
    SELECT 1
    FROM pearl_p.tltc906_gcv,
         pearl_p.tltc912_gpv
) AND gcv.i_pln > 0
  AND gcv.i_pln = gpv.i_pln
  AND gpv.i_prv = 36)

逻辑可能仍然是错误的 - 它看起来很可疑。但至少应该这样做。

答案 2 :(得分:0)

这是您查询的第二部分:

FROM Pearl_P.tltc906_gcv gcv

- AND之前需要的东西

        AND NOT EXISTS(
        SELECT 1
        FROM pearl_p.tltc906_gcv gcv,

答案 3 :(得分:0)

你有这个......

        FROM Pearl_P.tltc906_gcv gcv



        AND NOT EXISTS(

要么将其应用于WHOLE联合结果......

SELECT * FROM (
  <query 1>
UNION ALL
  <query 2>
)
WHERE
  NOT EXISTS (...)

或者您错过了WHERE

所在的AND声明