Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Conte(*) restituisce null

La tua query sta eseguendo un join esterno durante il tentativo di eseguire un conteggio. Se B.UserId è elencato come NULL, anche il conteggio(* ) restituirà NULL. Puoi risolvere questo problema eseguendo esplicitamente un conteggio di A usando "count (A.*)" o racchiudendolo in 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   

o

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