2017-04-26 14 views
1

안녕하세요 도움이 HP ALM 지도자를 실행을 반환하는 쿼리를 필요요청 : 실행 단계 및 실행 된 마지막 테스트 랩의 단계 상태가

나는 현재 다음과 같은 쿼리를 사용

: 불행하게도

SELECT 
CF_ITEM_NAME as "Test Set Folder Name", 
CY_CYCLE as "Test Set Name", 
TS_NAME as "Test Case Name", 
RN_STATUS as "Test Case Status", 
ST_STEP_NAME as "Test Step Name", 
ST_STATUS as "Test Step Status", 
ST_DESCRIPTION as "Test Step Description", 
ST_EXPECTED as "Test Step Expected Result", 
ST_ACTUAL as "Test Step Actual Result", 
RN_HOST as "Test Host Name", 
RN_TESTER_NAME as "Tester Name", 
ST_EXECUTION_DATE as "Test Step Execution Date", 
ST_EXECUTION_TIME as "Test Step Execution Time" 
FROM STEP a, TEST b, CYCLE c,RUN d,CYCL_FOLD e 
where 
a.ST_TEST_ID=b.TS_TEST_ID and 
c.CY_CYCLE_ID=d.RN_CYCLE_ID and 
d.RN_TEST_ID=b.TS_TEST_ID and 
e.CF_ITEM_ID=c.CY_FOLDER_ID and 
RN_HOST IS NOT NULL and 
RN_TESTER_NAME IS NOT NULL and 
CF_ITEM_PATH like 'AAAAAG%' 
//CF_ITEM_ID like '267%' //Comment this or CF_ITEM_PATH and use the other 
ORDER BY TS_NAME,RN_RUN_ID,ST_RUN_ID,ST_EXECUTION_DATE,ST_EXECUTION_TIME ASC 

을, 이 쿼리의 문제점은 다중 항목 ALM 프로젝트의 모든 CF_ITEM_PATH 값을 캡처하는 별도의 쿼리를 실행해야한다는 것입니다. 그런 다음 해당 문자열을 "CF_ITEM_PATH like"필드에 연결하고 목록을 가져와야합니다.

적어도 다음 데이터를 반환하는 쿼리를 만들고 실행할 수 있습니까? TS_NAME, ST_STEP_NAME, ST_STATUS_ST_DESCRIPTION, ST_EXPECTED, ST_ACTUAL, ST_EXECUTION_DATE

테스트 계획에서 가장 최근/마지막으로 실행 된 테스트 세트에 대해이 데이터를 가져 오는 쿼리를 원합니다. 이것이 가능한가? 어떻게 할 수 있습니까? 할 수 없다면 원하는 정보를 얻기 위해 CF_ITEM_PATH 대신 Test Set의 Run ID 값을 사용하도록 위의 쿼리를 변경할 수 있습니까? 방법?

SQL에 익숙하지 않아 자세한 지침이 필요합니다.

도움 주셔서 감사합니다.

+1

db 스키마, 샘플 데이터 및 예상 출력을 보여줍니다. \t [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t 그리고 [** 시작 **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) 질문 품질을 향상시키고 더 나은 답변을 얻는 방법을 배우십시오. \t [** 최소, 완전하고 검증 가능한 예제를 만드는 방법 **] (http://stackoverflow.com/help/mcve) –

+0

AORON Bertrand는 Exploit JOIN sintaxis의 사용을 권장합니다. [킥 습관 : 오래된 스타일의 JOIN 사용하기] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) 그것에 대해. –

답변

0
SELECT C1.CY_CYCLE_ID , C1.CY_CYCLE AS TEST_SET_NAME , TC1.TC_TEST_ID , T.TS_NAME 
, R1.RN_STATUS , R1.RN_RUN_ID , R1.RN_RUN_NAME, R1.RN_TESTER_NAME ,S1.ST_STEP_NAME , S1.ST_DESCRIPTION , S1.ST_EXPECTED , S1.ST_ACTUAL 
FROM CYCL_FOLD CF1 , CYCL_FOLD CF2 , CYCLE C1 , TESTCYCL TC1 , TEST T , RUN R1 , STEP S1 
WHERE 
CF1.CF_ITEM_NAME = 'Cycle One' AND 
CF2.CF_ITEM_PATH LIKE CONCAT(CF1.CF_ITEM_PATH,'%') AND 
C1.CY_FOLDER_ID = CF2.CF_ITEM_ID AND 
TC1.TC_CYCLE_ID = C1.CY_CYCLE_ID 
AND 
T.TS_TEST_ID = TC1.TC_TEST_ID 
AND 
R1.RN_TESTCYCL_ID = TC1.TC_TESTCYCL_ID 
AND 
R1.RN_TEST_ID = TC1.TC_TEST_ID 
AND 
S1.ST_RUN_ID = R1.RN_RUN_ID 
+0

안녕하세요 @ 바니. 시간과 도움에 감사드립니다. 이 스크립트는 다음과 같이 실행될 때 오류를 반환합니다.'ERROR ------------------------------------- ---------------- [Mercury] [SQLServer JDBC 드라이버] [SQLServer] SQL 쿼리 을 실행하지 못했습니다. 'CONCAT'이 (가) 인식되지 않습니다. 내장 함수 이름 .' –