0

次のクエリは、テーブル データExtendedTextで一致する値またはゼロのいずれかの単一行として値を返します。LineNumberクエリにもう1つの条件を追加する必要があります-LineNumber存在しない場合は、nullの場合と同じように1行をゼロとして返します。NULLゼロを返すには、クエリで と emptyの両方をチェックする必要があります

SELECT  ISNULL(Sum(convert(dec,DeliveryPaymentExtras.ExtendedText)),0) As ExtendedText
FROM    DeliveryPaymentExtras
WHERE   (LineNumber =21) group by LineNumber
4

2 に答える 2

2

値を変数に選択し、その変数を選択します。

あなたの問題は、NULL行数がクエリの行数ではなくSUMを評価するISNULLをトリガーしないことです。変わった機械です。

したがって、ISNULL の合計を変数に選択してから、クエリでその中から選択する必要があります。

このようなもの:

DECLARE @Result DECIMAL(18,4)
SET @Result = 
(
SELECT  Sum(convert(dec,DeliveryPaymentExtras.ExtendedText)) As ExtendedText
FROM    DeliveryPaymentExtras
WHERE   (LineNumber =21) group by LineNumber
(


SELECT ISNULL(@Result, 0)
于 2013-11-06T06:33:09.900 に答える