2009-10-01 2 views
0

У меня возникли проблемы со следующим запросом, который возвращает следующую ошибку:Может кто-нибудь, пожалуйста, помогите мне с этим запросом SQL 08? Ошибка при запуске

«Статья» не является признанной опцией. Неверный синтаксис рядом с ключевым словом 'ON'

Есть ли что-то очевидное, что вы можете указать?

(
@PageIndex int, 
@PageSize int 
) 

WITH Article AS 
(
SELECT 
tbrm_Article.ArticleID, 
tbrm_Article.CountryID, 
tbrm_Article.CategoryID, 
tbrm_Article.Title, 
tbrm_Article.ArticleDetail, 
tbrm_Article.Source, 
tbrm_Article.ArticleDateTimeAdded, 
tbrm_Article.ViewCount, 
tbrm_Article.CommentCount, 
tbrm_CountryList.CountryName AS CountryName, 
tbrm_CountryList.CountryImage AS CountryImage, 
tbrm_CategoryList.CategoryName AS CategoryName, 
tbrm_CategoryList.CategoryImage AS CategoryImage, 
aspnet_Users.UserName AS UserName, 
Truth, 
Relevance, 
ROW_NUMBER() OVER (ORDER BY tbrm_Article.ArticleDateTimeAdded DESC) AS RowRank 

FROM 

tbrm_Article INNER JOIN 
tbrm_CountryList ON tbrm_Article.CountryID = tbrm_CountryList.CountryID INNER JOIN 
    tbrm_CategoryList ON tbrm_Article.CategoryID = tbrm_CategoryList.CategoryID INNER JOIN 
    aspnet_Users ON tbrm_Article.UserID = aspnet_Users.UserID 


CROSS APPLY (
SELECT tbrm_Votes.ArticleID, AVG(tbrm_Votes.Truth), AVG(tbrm_Votes.Relevance) 
FROM tbrm_Votes 
GROUP BY tbrm_Votes.ArticleID 
) AS Votes(ArticleID,Truth,Relevance) 
ON tbrm_Article.ArticleID = tbrm_Votes.ArticleID 

) SELECT * FROM Article 
    WHERE Article.RowRank > @PageIndex AND RowRank <= (@PageIndex + @PageSize) 
    ORDER BY Article.ArticleDateTimeAdded DESC 

ответ

2

Вам нужно добавить точку с запятой перед вашим «С» (он должен быть первым оператором в пакете):

OK - обновление - вы пытаетесь сделать это внутри хранимой процедуры - что меняет некоторые детали ...

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

CREATE PROCEDURE dbo.MyProcedure(@PageIndex int, @PageSize int) 
AS 
BEGIN  
    WITH Article AS 
    (
     SELECT 
     tbrm_Articl 
    ........ // rest of your statement 
END 

ли эту работу ??

Marc

+0

Hi Marc. Благодарю. Довольно неожиданно для этого все так интересно учиться. Что вы имеете в виду в комментариях @pageindex и @pagesize? – Cunners

+0

Должно ли это быть ПРОЦЕДУРЫ CREATE (@PageINdex INT, @PageSize INT) или что-то еще? –

+0

это правильно. я пропустил первую строку хранимой процедуры. – Cunners

Смежные вопросы