您可以使用简单的加法和CASE
语句来解决这个问题。
规则:
- 8道:总总是= 8
- 7次通过,1条边界线:总是= 9
- 任何其它组合=失败
示例代码:
-- dummy table
CREATE TABLE #temp
(
c1 INT , c2 INT , c3 INT , c4 INT ,
c5 INT , c6 INT , c7 INT , c8 INT
)
-- dummy data
INSERT INTO #temp
(c1 , c2 , c3 , c4 ,
c5 , c6 , c7 , c8
)
SELECT 1,1,1,1,1,1,1,1
UNION ALL
SELECT 1,1,1,1,1,1,2,1
UNION ALL
SELECT 1,2,3,1,1,1,1,2
-- query to calculate totals and pass/fail
SELECT *,
CASE t.Total WHEN 8 THEN 'Pass'
WHEN 9 THEN 'Border Line'
ELSE 'Fail' END Overall
FROM (SELECT * ,
c1 + c2 + c3 + c4 + c5 + c6
+ c7 + c8 Total
FROM #temp
) t
-- clean up
DROP TABLE #temp
产品:
c1 c2 c3 c4 c5 c6 c7 c8 Total Overall
1 1 1 1 1 1 1 1 8 Pass
1 1 1 1 1 1 2 1 9 Border Line
1 2 3 1 1 1 1 2 12 Fail
你试过什么吗? – Arti