Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Count(*) renvoie null

Votre requête effectue une jointure externe tout en essayant d'effectuer un décompte. Si B.UserId est répertorié comme NULL, alors le count(* ) renverra également NULL. Vous pouvez résoudre ce problème en effectuant explicitement un décompte de A à l'aide de "count (A.*)" ou en l'enveloppant dans ISNULL().

select A.UserId, B.UserId, count(A.*)
  from select tableA A 
  left outer join tableB B
    on A.UserBNumber = B.Number
 group by A.UserId, B.UserId   

ou

select A.UserId, B.UserId, isnull(count(*),0)
  from select tableA A 
  left outer join tableB B
    on A.UserBNumber = B.Number
 group by A.UserId, B.UserId