2

我试图CASE在我的T-SQL SELECT语句中使用零错误来消除这种除法。出于某种原因,我不断收到错误消息。这是我的逻辑。

SELECT 
    CASE 
       WHEN tb1.wpf = 0.000 THEN '0.000' 
       ELSE SUM(tb2.weight/tb1.wpf) 
    END AS Average 
FROM Table1 tb1, table2 tb2 
GROUP BY tb1.wpf

我没有包括连接和我所有的逻辑来保持我的问题特定于这个案例。我怎样才能摆脱这个错误?

4

1 回答 1

2

CASE应用于聚合,而不是单个位。试试这个:

SELECT SUM(Average) FROM (
    SELECT 
            CASE 
               WHEN tb1.wpf = 0 THEN 0
               ELSE tb2.weight / tb1.wpf
            END AS Average 
        FROM Table1 tb1, table2 tb2 
) a
于 2012-07-11T14:50:13.930 回答