Defects can be linked to requirements, tests, test instances, run and steps. When defects are filtered by test set folders, defects linked to test instances, run and step are retrieved and other defects are ignored. A defect might be linked to one or more test instance and vice versa.
The following query lists the number of links established and not the total defects present. Also i'm working on SQL Server and I could not use CTE's here.
SELECT BG_BUG_ID, TS_TEST_ID, TC_TESTCYCL_ID, TC_CYCLE_ID, TS_NAME, TC_STATUS FROM ( SELECT BG_BUG_ID, TS_TEST_ID, TC_TESTCYCL_ID, TC_CYCLE_ID, TS_NAME, TC_STATUS FROM BUG INNER JOIN LINK ON (BG_BUG_ID = LN_BUG_ID AND LN_ENTITY_TYPE ='TESTCYCL') INNER JOIN TESTCYCL ON (LN_ENTITY_ID = TC_TESTCYCL_ID) INNER JOIN TEST ON (TC_TEST_ID = TS_TEST_ID) UNION SELECT BG_BUG_ID, TS_TEST_ID, TC_TESTCYCL_ID, TC_CYCLE_ID, TS_NAME, TC_STATUS FROM BUG INNER JOIN LINK ON (BG_BUG_ID = LN_BUG_ID AND LN_ENTITY_TYPE ='RUN') INNER JOIN RUN ON (LN_ENTITY_ID = RN_RUN_ID) INNER JOIN TEST ON (TS_TEST_ID = RN_TEST_ID) INNER JOIN TESTCYCL ON (TS_TEST_ID = TC_TEST_ID And RN_TESTCYCL_ID = TC_TESTCYCL_ID) UNION SELECT BG_BUG_ID, TS_TEST_ID, TC_TESTCYCL_ID, TC_CYCLE_ID, TS_NAME, TC_STATUS FROM BUG INNER JOIN LINK ON (BG_BUG_ID = LN_BUG_ID AND LN_ENTITY_TYPE ='STEP') INNER JOIN STEP ON (LN_ENTITY_ID = ST_ID) INNER JOIN RUN ON (ST_RUN_ID = RN_RUN_ID) INNER JOIN TEST ON (TS_TEST_ID = RN_TEST_ID) INNER JOIN TESTCYCL ON (TS_TEST_ID = TC_TEST_ID And RN_TESTCYCL_ID = TC_TESTCYCL_ID) ) DEFECTS INNER JOIN CYCLE ON CY_CYCLE_ID = TC_CYCLE_ID INNER JOIN CYCL_FOLD ON CF_ITEM_ID = CY_FOLDER_ID WHERE CF_ITEM_PATH LIKE 'AAAAABAAA%' GROUP BY BG_BUG_ID, TS_TEST_ID, TC_TESTCYCL_ID, TC_CYCLE_ID, TS_NAME, TC_STATUS