我目前在尝试创建计算时出现问题。
所以我有8列,所有列都有相同的3个值:
1 = pass , 2 = borderline , 3 = Fail.
我需要能够计算一个新列,该列将说明以下内容:
Pass = All 8 fields equals '1'
Borderline = 7 Fields that equal '1' with one field that equals '2'
Else Fail
这似乎是一个简单的计算,但我一直在border跳过边界逻辑,因为8列中的任何一列都可能有' 2'?
非常感谢任何帮助。
答案 0 :(得分:1)
如果您的列只有1,2或3,那么您可以试试这个
var webpack = require('webpack');
var path = require('path');
module.exports = {
context: path.join(__dirname, "src"),
devtool: "inline-sourcemap",
entry: "./js/client.js",
module: {
loaders: [
{
test: /\.js?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader',
query: {
presets: ['react', 'es2015', 'stage-0'],
plugins: ['react-html-attrs', 'transform-decorators-legacy'],
}
}
]
},
output: {
path: __dirname + "/src/",
filename: "client.min.js"
}
};
答案 1 :(得分:0)
您可以简单地计算8列的总数,如果该值大于9,则表示失败。假设8列中没有NULL或0值。
SELECT Col1 + Col2 + Col3 + Col4 + Col5 + Col6 + Col7 + Col8 AS Total
答案 2 :(得分:0)
您可以使用简单的加法和CASE
语句来解决这个问题。
规则:
示例代码:
-- 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