即使使用ISNULL,函数也始终返回null

时间:2013-06-20 03:01:37

标签: sql tsql

我有以下功能:

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总是有一个值。

1 个答案:

答案 0 :(得分:1)

首先使用隐式连接停止。完成后,您可以使用LEFT JOIN来解决您的问题。