-- 楼主这样找找问题~~~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)
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)
(
select distinct SISI_DownCMac
from SISI_ClientDown
where SISI_DownUID = 51
) t
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
select count(*) as SISI_DownCMac from
(
select distinct SISI_DownCMac
from SISI_ClientDown
where SISI_DownUID = 51
) t这段代码只是实现了对数据的不重复统计,可是按日期分组该怎么实现呢?我现在的数据中同一天中会出现多条重复记录,可我只需要取DISTINCT的就可以了
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)
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)