2009-05-14 2 views
0

Этот запрос дает мне ошибку: Msg 156, Level 15, State 1, Line 10 Неверный синтаксис рядом с ключевым словом 'where'.Как я могу оценить этот запрос?

declare @date1 datetime,@date2 datetime , @COUNT INT , @countgap int, @order int 
seLECT @date1='2009-05-11' , @date2 = '2009-05-12' 
seLECT @countgap = 30 , @COUNT = 0, @order=23 

select VisitingCount from (
select count(page) as VisitingCount, 
    (datepart(hour,Date)*60+datepart(minute,Date))/@countgap as OrderNumber 
    from scr_SecuristLog 
    where Date between @date1 and @date2 
    GROUP BY (datepart(hour,Date)*60+datepart(minute,Date))/@countgap) where [email protected]
+0

Я не понимаю Редактирование кода в stackoverflow? – Penguen

ответ

3

Pherhaps:

GROUP BY (datepart(hour,Date)*60+datepart(minute,Date))/@countgap) 
HAVING [email protected] 

или:

where (Date between @date1 and @date2) AND [email protected] 
GROUP BY (datepart(hour,Date)*60+datepart(minute,Date))/@countgap) 
2

Вы должны дать вашей производной таблицы имя, например, DT1. Здесь я переформатировал текст SQL по своему личному вкусу :), чтобы было легче читать:

select DT1.VisitingCount 
    from (
     select count(page) as VisitingCount, 
       (datepart(hour,Date)*60+datepart(minute,Date))/@countgap 
        as OrderNumber 
      from scr_SecuristLog 
     where Date between @date1 and @date2 
     GROUP 
      BY (datepart(hour,Date)*60+datepart(minute,Date))/@countgap 
     ) AS DT1 
where [email protected]