Как получить десятку результатов в SQL? - PullRequest
0 голосов
/ 20 мая 2009

Этот запрос с задержкой выдает мне ошибку:

declare @date1 nvarchar(100) , @date2 nvarchar(100)

select @date1='2009-04-20', @date2='2009-05-20'

select top 10 t.VisitingCount , t.Page
    from (
           select  Count(Page) as VisitingCount,Page
               from scr_SecuristLog   
               where Date between @date1 and @date2  
                   and [user] in (select USERNAME             
                                      from scr_CustomerAuthorities
                                 )  
               group by Page order by [VisitingCount] desc 
         ) t 

Ошибка:

Предложение ORDER BY недопустимо в представлениях, встроенных функциях, производных таблицах, подзапросах и общих табличных выражениях, если также не указано TOP или FOR XML.

Ответы [ 4 ]

7 голосов
/ 20 мая 2009

Я думаю, что вы пропустили запятую

select top 10 t.VisitingCount , t.Page from

в строке выше после t.VisitingCount

2 голосов
/ 20 мая 2009

вытащить заказ из производной таблицы "t"

попробуйте это:

declare @date1 nvarchar(100) , @date2 nvarchar(100)

select @date1='2009-04-20', @date2='2009-05-20'

select top 10 t.VisitingCount , t.Page
    from (
           select  Count(Page) as VisitingCount,Page
               from scr_SecuristLog   
               where Date between @date1 and @date2  
                   and [user] in (select USERNAME             
                                      from scr_CustomerAuthorities
                                 )  
               group by Page
         ) t 
     order by [VisitingCount] desc 
1 голос
/ 20 мая 2009
declare @date1 nvarchar(100) , @date2 nvarchar(100)

select @date1='2009-04-20', @date2='2009-05-20'

select t.VisitingCount, t.Page from(
select top 10 Count(Page) as VisitingCount,Page from scr_SecuristLog   
where Date between @date1 and @date2  
and [user] in(select USERNAME             
    from scr_CustomerAuthorities )  
group by Page order by [VisitingCount] desc ) t order by t.VisitingCount desc
0 голосов
/ 20 мая 2009

Просто укажите какой-либо порядок внутри встроенного представления:

Declare @ date1 nvarchar (100), @ date2 nvarchar (100)

select @ date1 = '2009-04-20', @ date2 = '2009-05-20'

выберите лучшие 10 т. VisitingCount, т. Страницы с ( выберите Count (Page) как VisitingCount, Page from scr_SecuristLog
где Дата между @ date1 и @ date2
и [пользователь] в (выберите ИМЯ ПОЛЬЗОВАТЕЛЯ
от scr_CustomerAuthorities ЗАКАЗАТЬ по каким-либо столбцам ) * +1010 * сгруппировать по порядку страниц по [VisitingCount] desc) t

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...