Это HP / IBM Quality Center;
Есть три таблицы.
У testcycl есть тест, а у теста есть шаги. Шаги имеют много дубликатов по своей природе из-за множества прогонов.
Следовательно, для данного TestCycle я хотел бы получить все тесты, включая их шаги, для самого последнего st_run_id .
Пробовал себя сдерживать, но у меня ничего не получается. 1 Цикл может иметь 500 тестов, которые дают 5000 шагов из-за повторяющихся прогонов, очень легко застрять.
Как ограничить запрос шагов на основе самого последнего st_run_id, имея в виду, что он должен быть ограничен st_test_id ?
select *
from
(
-- Get details for that test
select
ts_test_id,
ts_name,
ts_description
from test
where 1=1
and ts_test_id in
(
-- Get all test ID's belonging to a specific cycle
select distinct tc_test_id
from testcycl
where 1=1
and testcycl.tc_assign_rcyc = 1021
)
) tests
-- Get the steps
left join
(
select
step.st_test_id,
step.st_run_id,
step.st_execution_date,
step.st_id,
step.st_step_name,
step.st_description,
step.st_expected
from step
where 1=1
) steps
on tests.ts_test_id = steps.st_test_id