SELECT [Name], COUNT([Num]) AS [Name] FROM TableName GROUP BY [Name]
结果如下:
Name   Num
aaa     20
bbb     10
上面的SQL语句查询只能统计出Num大于0,
我要把Num的为0的记录也统计出来,我需要的显示效果:
Name    Num
aaa     20
bbb     10
ccc     0
SQL语句怎么该?

解决方案 »

  1.   

    应该没什么问题吧,只是显示结果有点不同~~~
    PS:COUNT([Num]) AS [Name]  应改成  COUNT(*) AS [Num]
    SELECT [Name], COUNT(*) AS [Num] FROM TableName GROUP BY [Name]原来显示的结果:
    Name    Num
    aaa     20
    bbb     10
    ccc     null
      

  2.   

    SELECT [Name],IFNULL(COUNT(Num),0) AS [Num] FROM TableName GROUP BY [Name]
      

  3.   

    我试过了:SELECT [Name], COUNT(*) AS [Num] FROM TableName GROUP BY [Name]
    显示的结果:
    Name    Num
    ………………
    ccc     NULL

    Name    Num
    ………………
    ccc     0
      

  4.   

    declare @a table(Name varchar(5) ,   Num int)
    insert @a 
    select 'aaa', 20 union all
    select 'bbb',  10 union all
    select 'ccc',''select name,isnull(num,0) from @a(所影响的行数为 3 行)name              
    ----- ----------- 
    aaa   20
    bbb   10
    ccc   0(所影响的行数为 3 行)
      

  5.   

    SELECT [Name], isnull(COUNT([Num]),0) AS [Name] FROM TableName GROUP BY [Name]
      

  6.   

    我试过了:SELECT [Name], COUNT(*) AS [Num] FROM TableName GROUP BY [Name]

    SELECT [Name], isnull(COUNT([Num]),0) AS [Name] FROM TableName GROUP BY [Name]
    结果中没有:
    Name    Num
    ………………
    ccc     NULL

    Name    Num
    ………………
    ccc     0
      

  7.   

    ccc的统计结果为0,怎么让它在查询结果中显示出来?
      

  8.   

    count不会计算null列
    先把它更新为0update table set [num]=0 where [num] is null
      

  9.   

    楼上,Num列的所有值都不为空。
      

  10.   

    SELECT [Name], COUNT([Name]) AS [Num] FROM TableName GROUP BY [Name]
      

  11.   

    我也遇到同样的问题!
    select count(*) as num from temptab where 1<>1
    结果:
    num
    0
    select count(*) as num from temptab where 1<>1 group by id
    结果:
    num
    id列不为空!
      

  12.   

    楼上各位的方法在查询结果中都得不到Name为ccc的汇总值!怎么办?
      

  13.   

    SELECT Name, COUNT(*) AS Num FROM TableName GROUP BY Name-- 这样的语句中,Name列有没有null值?