私は次の機能を持っています:
CREATE FUNCTION HARDCODERS.getKilosDisponiblesViaje(@Viaje int)
RETURNS TABLE
AS
RETURN
(
select Micro.KG_Disponibles - SUM(Encomienda.Cant_KG) as KGDisponibles
from HARDCODERS.Micro, HARDCODERS.Viaje, HARDCODERS.Encomienda, HARDCODERS.PasajeEncomienda
where Viaje.Cod_Viaje = @Viaje AND Viaje.Patente = Micro.Patente AND PasajeEncomienda.Cod_Viaje = @Viaje
AND PasajeEncomienda.Cod_PasajeEncomienda = Encomienda.Cod_PasajeEncomienda
group by Micro.KG_Disponibles,Micro.Patente
)
GO
Encomienda に行があれば問題なく動作します。ただし、そうしないと、関数は常に null を返します。
ISNULL を SUM に追加し、その中で試してみましたが、Encomienda に行がない場合は null を返し続けます。
Micro.KG_Disponibles には常に値があります。