Может кто-нибудь помочь мне с этим запросом SQL 08? Ошибка при запуске - PullRequest
0 голосов
/ 01 октября 2009

У меня проблема со следующим запросом, который возвращает следующую ошибку:

«Статья» не является признанным вариантом. Неверный синтаксис рядом с ключевым словом '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

1 Ответ

2 голосов
/ 01 октября 2009

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

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

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

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

Это работает?

Марк

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