注:Access 2000 数据库

表A
[ID],[姓名]
表B
[ID],[分数]select 表A.姓名 as 考生姓名,sum(表B.分数) as 总分数 from 表A left join 表B ON 表A.ID = 表B.ID现在有一个问题就是
假设表B中没有表A.ID的数据,此语句就会出错(因为left join后表B.分数 是 Null值)
如何使这种情况下让 总分数 = 0 呢?

解决方案 »

  1.   

    sum(表B.分数)改为sum(iif isnull(表B.分数),0,表B.分数)
      

  2.   

    sum(isnull(表B.分数,0) as 表B.分数) as 总分数
      

  3.   

    谢谢两位的提示
    我明白了
    正确的应该是select 表A.姓名 as 考生姓名,sum(iif(isnull(表B.分数),0,表B.分数)) as 总分数 from 表A left join 表B ON 表A.ID = 表B.ID group by 表A.姓名
      

  4.   

    select isnull(表A.姓名,'') as 考生姓名,sum(isnull(表B.分数,0)) as 总分数 
    from 表A left join 表B ON 表A.ID = 表B.ID这个绝对是正确的,我就是一直用SQLSERVER,根本不用IIF,回答人家的问题要负责任的.
    IIF在SQL SERVER能用吗?
      

  5.   

    如果我没记错的话,应该能用,请看清楚是在ACCESS2000中,如果没有用过我会随便说吗,拜托看清楚!!!