两个查询结果的联接导致括号丢失错误

时间:2019-07-11 05:46:25

标签: oracle

我试图寻找类似问题的答案,但没有一个起作用。

我有两个查询,并且希望同时合并两个查询的结果。这是有关ALM中某个测试用例的运行总数。

我收到有关缺少括号的错误,但它们似乎很平衡。

SELECT "Test Naam1", "Execution Status", "Test Case ID", "Totaal2", "Test Naam2", "Totaal1"
FROM
(
(SELECT
TS_NAME as "Test Naam",
RN_STATUS AS "Execution Status",
RN_TESTCYCL_ID AS "Test Case ID" ,
COUNT(*)  as "Totaal2"
FROM
RUN, TEST
where
RN_TESTCYCL_ID IN (8492,8493,8494,8495,8496,8497,8498,8499,8500,8502)

AND RN_TEST_ID = TS_TEST_ID
AND RN_EXECUTION_DATE  > to_date('2019/07/09 00:00:00', 'YYYY/MM/DD HH24:MI:SS')    /*calculate only after 8th of july (stable tests) */
group by
RN_STATUS,
RN_TESTCYCL_ID
  ,RN_TEST_ID
  ,TS_NAME
  ,TEST.TS_TEST_ID
  ORDER BY ts_NAME)as t1

LEFT JOIN

(SELECT
TS_NAME as "Test Naam2",
RN_TESTCYCL_ID AS "Test Case ID" ,
COUNT(*)  as "Totaal1"
FROM
RUN, TEST
where
RN_TESTCYCL_ID IN (8492,8493,8494,8495,8496,8497,8498,8499,8500,8502)

AND RN_TEST_ID = TS_TEST_ID
AND RN_EXECUTION_DATE  > to_date('2019/07/09 00:00:00', 'YYYY/MM/DD HH24:MI:SS')    /*calculate only after 8th of july (stable tests) */
group by

RN_TESTCYCL_ID
  ,RN_TEST_ID
  ,TS_NAME
  ,TEST.TS_TEST_ID
  ORDER BY ts_NAME)as t2

)
where    "Test Naam1" = "Test Naam2"

因此,我希望有一个表,该表针对每个状态运行的每个测试用例都具有结果数量(示例test1、12个通过,10个失败,5个未完成(query1),以及来自query2的总运行次数特定的test1 27次总运行(最后我想知道已通过的运行百分比

1 个答案:

答案 0 :(得分:2)

内嵌评论解决了多个问题,如下所示:

SELECT
    "Test Naam1",
    "Execution Status",
    "Test Case ID",
    "Totaal2",
    "Test Naam2",
    "Totaal1"
FROM
( (
    SELECT
        TS_NAME          AS "Test Naam",
        RN_STATUS        AS "Execution Status",
        RN_TESTCYCL_ID   AS "Test Case ID",
        COUNT(*) AS "Totaal2"
    FROM
        RUN,
        TEST
    WHERE
        RN_TESTCYCL_ID IN (
            8492,
            8493,
            8494,
            8495,
            8496,
            8497,
            8498,
            8499,
            8500,
            8502
        )
        AND RN_TEST_ID = TS_TEST_ID
        AND RN_EXECUTION_DATE > TO_DATE('2019/07/09 00:00:00', 'YYYY/MM/DD HH24:MI:SS')    /*calculate only after 8th of july (stable tests) */
    GROUP BY
        RN_STATUS,
        RN_TESTCYCL_ID,
        RN_TEST_ID,
        TS_NAME,
        TEST.TS_TEST_ID
    ORDER BY
        TS_NAME
) t1 -- "AS" BEFORE T1 WAS REMOVED

LEFT JOIN (
    SELECT
        TS_NAME          AS "Test Naam2",
        RN_TESTCYCL_ID   AS "Test Case ID",
        COUNT(*) AS "Totaal1"
    FROM
        RUN,
        TEST
    WHERE
        RN_TESTCYCL_ID IN (
            8492,
            8493,
            8494,
            8495,
            8496,
            8497,
            8498,
            8499,
            8500,
            8502
        )
        AND RN_TEST_ID = TS_TEST_ID
            AND RN_EXECUTION_DATE > TO_DATE('2019/07/09 00:00:00', 'YYYY/MM/DD HH24:MI:SS')    /*calculate only after 8th of july (stable tests) */
    GROUP BY
        RN_TESTCYCL_ID,
        RN_TEST_ID,
        TS_NAME,
        TEST.TS_TEST_ID
    ORDER BY
        TS_NAME
) T2 ON (T1."Test Naam1" = T2."Test Naam2")) -- "AS" BEFORE T2 WAS REMOVED
-- where    "Test Naam1" = "Test Naam2" -- THIS IS "ON" CONDITION OF JOIN. SO REMOVED "WHERE CLAUSE"

干杯!