Как я могу оценить этот запрос? - PullRequest
0 голосов
/ 14 мая 2009

Этот запрос дает мне ошибку: сообщение 156, уровень 15, состояние 1, строка 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 OrderNumber=@order

Ответы [ 2 ]

3 голосов
/ 14 мая 2009

Pherhaps:

GROUP BY (datepart(hour,Date)*60+datepart(minute,Date))/@countgap) 
HAVING OrderNumber=@order

или

where (Date between @date1 and  @date2) AND OrderNumber=@order
GROUP BY (datepart(hour,Date)*60+datepart(minute,Date))/@countgap) 
2 голосов
/ 14 мая 2009

Вам необходимо дать производной таблице имя, например, 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 DT1.OrderNumber=@order
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...