我有以下功能:
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。
我在 SUM 中添加了一个 ISNULL,也在其中尝试过,如果 Encomienda 中没有行,它会一直返回 null。
Micro.KG_Disponibles 总是有一个值。