试图使用sql server获得击球率

时间:2014-02-14 15:16:22

标签: sql-server

select 
    ab, 
    case when ab <> 0 
        then str(CAST(sum(singleHit) AS float) / CAST(sum(ab) AS float) ,5,3 ) 
        else str(.000) 
    end as BA   
from gameLineup

当我不使用总和时,它会撤回正确的那些,但如果我这样做,我会在选择列表中使'ab'无效,因为它不包含在聚合函数或GROUP BY子句中< / p>

我不想用ab。

对它们进行分组

谢谢,

1 个答案:

答案 0 :(得分:0)

从列列表中删除ab并检查案例表达式中的sum(ab)

select 
  str(case when sum(ab) = 0 
        then 0.0 
        else 1.0 * sum(singleHit) / sum(ab) 
      end, 5, 3) as ba
from gameLineup