-- 楼主这样找找问题~~~select
         CONVERT(CHAR(10),SISI_DownDate,120),
(count(distinct(SISI_DownCMac))) as SISI_DownCMac
from 
SISI_ClientDown 
where 
 SISI_DownUID = 51
group by  
CONVERT(CHAR(10),SISI_DownDate,120)

解决方案 »

  1.   

    select count(*) as SISI_DownCMac from
    (
      select distinct SISI_DownCMac
      from SISI_ClientDown 
      where SISI_DownUID = 51
    ) t
      

  2.   

    select SISI_DownUID,sum(SISI_DownCMac) from (
      select
        SISI_DownUID,
       (count(distinct(SISI_DownCMac))) as SISI_DownCMac
      from 
       SISI_ClientDown 
      where 
        SISI_DownUID = 51
      group by  
       CONVERT(CHAR(10),SISI_DownDate,120)) 
    group by SISI_DownUID
      

  3.   

    楼上,求教,
    select count(*) as SISI_DownCMac from
    (
      select distinct SISI_DownCMac
      from SISI_ClientDown 
      where SISI_DownUID = 51
    ) t这段代码只是实现了对数据的不重复统计,可是按日期分组该怎么实现呢?我现在的数据中同一天中会出现多条重复记录,可我只需要取DISTINCT的就可以了
      

  4.   

    declare @sql nvarchar(max)
    set @sql=''
    select @sql=@sql+'select ''' + SISI_DownDate+ ''' as 日期,count(*) from SISI_ClientDown where SISI_DownDate =' + SISI_DownDate + 'union all ' from SISI_ClientDown 
    set @sql=left(@sql,len(@sql)-10)
    exec(@sql)
      

  5.   

    上面的有点错误
    declare @sql nvarchar(max)
    set @sql=''
    select @sql=@sql+'select ''' + cast(SISI_DownDate as nvarchar) + ''' as 日期,count(*) as 总和 from SISI_ClientDown where SISI_DownDate =''' + cast(SISI_DownDate as nvarchar)  + ''' union all ' from SISI_ClientDown 
    set @sql=left(@sql,len(@sql)-10)
    set @sql='select distinct * from ('+@sql+')a'
    exec(@sql)