【发布时间】:2017-11-18 03:40:48
【问题描述】:
我在 HP ALM 中有两个不同的查询,但我想将其合并为一个。我在 SQL 查询方面不是那么好,所以我在合并查询方面遇到了困难。
查询 1:获取测试人员的执行次数
Select
TESTCYCL.TC_ACTUAL_TESTER as 'Tester',
sum(case when TC_Status In('Blocked','Passed','Failed','Not Completed') then 1 else 0 end) as 'Total',
sum(case when TC_Status = 'Passed' then 1 else 0 end) as 'Pass',
sum(case when TC_Status = 'Failed' then 1 else 0 end) as 'Fail',
sum(case when TC_Status = 'Blocked' then 1 else 0 end) as 'Blocked',
sum(case when TC_Status In('Not Completed','Defferred','N/A') then 1 else 0 end) as 'Others'
From TESTCYCL
Where
TESTCYCL.TC_EXEC_DATE = CAST(CURRENT_TIMESTAMP AS DATE)
And
TESTCYCL.TC_ACTUAL_TESTER in ('Username1')
Group by TC_ACTUAL_TESTER
查询 2:让测试人员提出缺陷
SELECT
BG_DETECTED_BY,
Sum(case when BG_Status Not in ('Closed','Defect Resolved','Rejected')then 1 else 0 end) as 'Defect Raised'
FROM BUG
Where BUG.BG_DETECTED_BY in ('username1')
AND BUG.BG_DETECTION_DATE = CAST(CURRENT_TIMESTAMP AS DATE)
Group by BG_DETECTED_BY
我试过inner join/Left Join,但是用户提出的缺陷计数不匹配
Query3:我试过了:
Select
TESTCYCL.TC_ACTUAL_TESTER as 'Tester',
sum(case when TC_Status In('Blocked','Passed','Failed','Not Completed') then 1 else 0 end) as 'Total',
sum(case when TC_Status = 'Passed' then 1 else 0 end) as 'Pass',
sum(case when TC_Status = 'Failed' then 1 else 0 end) as 'Fail',
sum(case when TC_Status = 'Blocked' then 1 else 0 end) as 'Blocked',
sum(case when TC_Status In('Not Completed','Defferred','N/A') then 1 else 0 end) as 'Others',
Sum(case when BG_Status Not in ('Closed','Defect Resolved','Rejected')then 1 else 0 end) as 'Defect Raised'
From TESTCYCL
Left Join BUG
on TESTCYCL.TC_ACTUAL_TESTER = BUG.BG_DETECTED_BY
AND BUG.BG_DETECTION_DATE = CAST(CURRENT_TIMESTAMP AS DATE)
Where TESTCYCL.TC_EXEC_DATE = CAST(CURRENT_TIMESTAMP AS DATE)
And TESTCYCL.TC_ACTUAL_TESTER in ('username1')
Group by TC_ACTUAL_TESTER
输出如下:
Expected Output:
Tester Total Execution Passed Failed ... Defect Raised
A 5 3 2 10
Actual Output:
Tester Total Execution Passed Failed ... Defect Raised
A 56 3 2 45
【问题讨论】:
-
我们需要每个查询的样本数据和结果。所以我们可以尝试达到您的预期输出。否则我们不知道从哪里开始
-
@JuanCarlosOropeza 感谢您的及时回复,但表架构太大而无法提供。我只能说,如果有人在 HP ALM 上工作过,那么他们将会有更好的理解。请查看架构 TESTCYCL 和 BUG Tables_Schema
-
我理解,但您尝试创建一个 MVC,以便我们理解并进行测试。 How to create a Minimal, Complete, and Verifiable example 否则我们必须花费大量时间来破译你所拥有的。
-
也不能太大。测试人员 A 有 5+3+2+10 行。您可以提供该数据。
-
您希望拥有多个用户名吗?否则你应该使用
TC_ACTUAL_TESTER = 'username1'