-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWorkflow Cases.sql
More file actions
70 lines (52 loc) · 1.61 KB
/
Copy pathWorkflow Cases.sql
File metadata and controls
70 lines (52 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*----------------------------------------------------
DDL for Puzzle #8
Workflow Cases
*/----------------------------------------------------
/*-------------------------------------------------------------
You have a report of all workflows and their case results.
A value of 0 signifies the workflow failed, and a value of 1 signifies the workflow passed.
Write an SQL statement that transforms the following table into the expected output.
Input Table:
| Workflow | Case 1 | Case 2 | Case 3 |
|----------|--------|--------|--------|
| Alpha | 0 | 0 | 0 |
| Bravo | 0 | 1 | 1 |
| Charlie | 1 | 0 | 0 |
| Delta | 0 | 0 | 0 |
Expected Output:
| Workflow | Passed |
|----------|--------|
| Alpha | 0 |
| Bravo | 2 |
| Charlie | 1 |
| Delta | 0 |
*/------------------------------------------------------------------
DROP TABLE IF EXISTS #WorkflowCases;
GO
CREATE TABLE #WorkflowCases
(
Workflow VARCHAR(100) PRIMARY KEY,
Case1 INTEGER NOT NULL DEFAULT 0,
Case2 INTEGER NOT NULL DEFAULT 0,
Case3 INTEGER NOT NULL DEFAULT 0
);
GO
INSERT INTO #WorkflowCases (Workflow, Case1, Case2, Case3) VALUES
('Alpha',0,0,0),('Bravo',0,1,1),('Charlie',1,0,0),('Delta',0,0,0);
GO
------Method 1
select Workflow,Case1+Case2+Case3 as passed from #WorkflowCases;
GO
----Method 2
WITH cte_PassFail AS
(
SELECT Workflow, CaseNumber, PassFail
FROM #WorkflowCases
UNPIVOT (PassFail FOR CaseNumber IN (Case1,Case2,Case3)) AS UNPVT
)
SELECT Workflow,
SUM(PassFail) AS PassFail
FROM cte_PassFail
GROUP BY Workflow
ORDER BY 1;
GO