0

为了计算错误的权重,我制定了这个查询,

Select id,faultdistribution, faulttype, faultseverity,
IF (faultdistribution='crs', COUNT(id) * 8, 0) + 
IF (faultdistribution='configuration', COUNT(id) * 6, 0) + 
IF (faulttype='bs' AND faultseverity='ft', COUNT(id) * 4, 0) + 
IF (faulttype='bs' AND faultseverity='mj', COUNT(id) * 2, 0) + 
IF (faulttype='bs' AND faultseverity='md', COUNT(id) * 5, 0) + 
IF (faulttype='bs' AND faultseverity='mi', COUNT(id) * 3, 0) + 
IF (faulttype='lf' AND faultseverity='ft', COUNT(id) * 2, 0) + 
IF (faulttype='lf' AND faultseverity='mj', COUNT(id) * 1, 0) 
FROM tbl_fault WHERE product='DAS' AND faultdistribution='missed'

我打算做的是;

如果故障分布 = 'crs' 则故障 * 8 + 如果故障分布 = '配置' 则故障 * 6 ......

因为,数据库中有记录,但我没有从上述查询中得到任何结果,需要帮助/建议。

问候

4

1 回答 1

1

因为您在查询中使用聚合函数 COUNT,它只返回一行。但是您的查询正在为所有行一一运行,这是错误的。

COUNT() 函数返回与指定条件匹配的行数。

于 2013-10-07T07:17:23.810 回答