Порядке, предусмотренном пунктом является недопустимым в представлениях, встроенных функциях, производных таблицах, вложенных запросах и обобщенных табличных выражений
предложение ORDER BY недопустимо в представлениях, встроенных функциях, производных
таблицы, подзапросы и общие табличные выражения, если не указано верхнее смещение
или для XML также указывается.
Я получаю вышеуказанную ошибку при попытке выполнить следующий запрос. Может кто-нибудь, пожалуйста, посмотрите и скажите, что я делаю неправильно здесь?
SELECT
*
FROM (
SELECT
Stockmain.VRNOA,
item.description as item_description,
party.name as party_name,
stockmain.vrdate,
stockdetail.qty,
stockdetail.rate,
stockdetail.amount,
ROW_NUMBER() OVER (ORDER BY VRDATE) AS RowNum
FROM StockMain
INNER JOIN StockDetail
ON StockMain.stid = StockDetail.stid
INNER JOIN party
ON party.party_id = stockmain.party_id
INNER JOIN item
ON item.item_id = stockdetail.item_id
WHERE stockmain.etype='purchase'
ORDER BY VRDATE DESC
) AS MyDerivedTable
WHERE
MyDerivedTable.RowNum BETWEEN 1 and 5
1 ответ:
вам не нужно использовать
ORDER BYво внутреннем запросе послеWHEREпункт, потому что вы уже использовали его вROW_NUMBER() OVER (ORDER BY VRDATE DESC).SELECT * FROM ( SELECT Stockmain.VRNOA, item.description as item_description, party.name as party_name, stockmain.vrdate, stockdetail.qty, stockdetail.rate, stockdetail.amount, ROW_NUMBER() OVER (ORDER BY VRDATE DESC) AS RowNum --< ORDER BY FROM StockMain INNER JOIN StockDetail ON StockMain.stid = StockDetail.stid INNER JOIN party ON party.party_id = stockmain.party_id INNER JOIN item ON item.item_id = stockdetail.item_id WHERE stockmain.etype='purchase' ) AS MyDerivedTable WHERE MyDerivedTable.RowNum BETWEEN 1 and 5
Comments