If you want the result for only one LineNumber
value, as the code suggests, it's trivial. Just remove the GROUP BY LineNumber
. An aggregation without group by means that the result will be exactly one row, no matter if we have 0 or a million rows, before the aggregation:
SELECT ISNULL(Sum(convert(dec,DeliveryPaymentExtras.ExtendedText)),0) AS ExtendedText
FROM DeliveryPaymentExtras
WHERE (LineNumber =21) ;
If you want results for multiple values (for example if you had: WHERE LineNumber IN (21, 34, 55) GROUP BY LineNumber
), then it's not straightforward. One way is:
SELECT v.LineNumber,
ISNULL(Sum(convert(dec,d.DeliveryPaymentExtras.ExtendedText)),0)
AS ExtendedText
FROM ( VALUES (21),(34),(55)
) AS v (LineNumber)
LEFT JOIN DeliveryPaymentExtras AS d
ON d.LineNumber = v.LineNumber
GROUP BY v.LineNumber ;