2

T-SQLステートメントを使用CASEして、この除算をゼロエラーで排除しようとしています。何らかの理由で、エラーが発生し続けます。これが私の論理です。 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 に答える