我从SQL Server获得的代码:
SELECT ESTAGIO.SK_ESTAGIO, ISNULL(count(ESTAGIO.SK_ESTAGIO), 0) as how_many from ESTAGIO left join ESTAGIARIO on ESTAGIARIO.SK_ESTAGIO = ESTAGIO.SK_ESTAGIO group by ESTAGIO.SK_ESTAGIO
当“ ESTAGIARIO”表中不存在“ESTAGIO.SK_ESTAGIO”时,它返回1而不是0,我已经尝试使用ISNULL(),NULLIF()和COALESCE(),但仍然找不到造成该问题的方法上面的查询在应为0时返回1。
您正在计算错误的字段。这样做是从外部联接表ESTAGIARIO(而不是ESTAGIO)中获取字段:
ESTAGIARIO
ESTAGIO
SELECT ESTAGIO.SK_ESTAGIO, Count(ESTAGIARIO.SK_ESTAGIO) as how_many from ESTAGIO left join ESTAGIARIO on ESTAGIARIO.SK_ESTAGIO = ESTAGIO.SK_ESTAGIO group by ESTAGIO.SK_ESTAGIO