반응형
SELECT
tm.id AS master_id,
tm.name AS master_name,
COUNT(DISTINCT ts.id) AS scenario_count,
COUNT(DISTINCT tc.id) AS case_count,
COUNT(DISTINCT ta.id) AS activity_count,
COUNT(DISTINCT CASE WHEN ta.verification_result = 'S' THEN ts.id END) AS successful_scenarios,
COUNT(DISTINCT CASE
WHEN tc.id IS NOT NULL AND
NOT EXISTS (
SELECT 1
FROM TestActivity ta2
WHERE ta2.case_id = tc.id AND ta2.verification_result <> 'S'
)
THEN tc.id
END) AS successful_cases,
COUNT(DISTINCT CASE WHEN ta.verification_result = 'S' THEN ta.id END) AS successful_activities
FROM
TestExecutionMaster tm
LEFT JOIN
TestScenario ts ON tm.id = ts.master_id
LEFT JOIN
TestCase tc ON ts.id = tc.scenario_id
LEFT JOIN
TestActivity ta ON tc.id = ta.case_id
GROUP BY
tm.id, tm.name
ORDER BY
tm.id;
SELECT
tm.id AS master_id,
tm.name AS master_name,
COUNT(DISTINCT ts.id) AS scenario_count,
COUNT(DISTINCT tc.id) AS case_count,
COUNT(DISTINCT ta.id) AS activity_count,
COUNT(DISTINCT CASE WHEN ta.verification_result = 'S' THEN ts.id END) AS successful_scenarios,
COUNT(DISTINCT CASE WHEN tc.id IS NOT NULL AND ta.verification_result = 'S' THEN tc.id END) AS successful_cases,
COUNT(DISTINCT CASE WHEN ta.verification_result = 'S' THEN ta.id END) AS successful_activities
FROM
TestExecutionMaster tm
LEFT JOIN
TestScenario ts ON tm.id = ts.master_id
LEFT JOIN
TestCase tc ON ts.id = tc.scenario_id
LEFT JOIN
TestActivity ta ON tc.id = ta.case_id
GROUP BY
tm.id, tm.name
ORDER BY
tm.id;
반응형