this query give me ‘Incorrect syntax near the keyword ‘select’.’ look please below bold character area.
declare @date1 smalldatetime, @date2 smalldatetime, @page nvarchar(100) ,@sum int
select @date1='2009-06-06',@date2='2009-06-13',@page='Tüm Sayfalar'
set @sum = select Sum(t.[VISITINGCOUNT]) from
(
select count(page) as [VISITINGCOUNT],
cast(DATENAME ( year ,DATE)+'-'+DATENAME (month ,DATE)+
'-'+DATENAME (day ,DATE) as smalldatetime) as [DATE]
from scr_StatisticaLog
where Date between @date1 and @date2
and (Page=@page or @page='Tüm Sayfalar') and ProcessType='PageView'
GROUP BY
cast(DATENAME ( year ,DATE)+
'-'+DATENAME (month ,DATE)+
'-'+DATENAME (day ,DATE) as smalldatetime)) as t
select 100*(t.[VISITINGCOUNT]/@sum),t.[DATE] from
(
select count(page) as [VISITINGCOUNT],
cast(DATENAME ( year ,DATE)+'-'+DATENAME (month ,DATE)+
'-'+DATENAME (day ,DATE) as smalldatetime) as [DATE]
from scr_StatisticaLog
where Date between @date1 and @date2
and (Page=@page or @page='Tüm Sayfalar') and ProcessType='PageView'
GROUP BY
cast(DATENAME ( year ,DATE)+
'-'+DATENAME (month ,DATE)+
'-'+DATENAME (day ,DATE) as smalldatetime)) as t
I don’t believe you can have
SET @var = SELECT ...Try the following instead:
I would also like to say that seeing as all you are doing is SUM-ing a single column in your sub-query there is no point in doing the group by, or returning the second column.
You are basically counting the number of records in various groups, then adding all the groups together. Far quicker just to count the total number of pages in total if that is all you need.
The following would be much simpler: