Respuesta :
Based on SQL tags and Query, and considering the original codes programmer do not need to use ORDER BY in inner query after WHERE clause because it has already been used in ROW_NUMBER () OVER (ORDER BY VRDATE DESC).
Note that it is not acceptable or executable to have ORDER BY command used in a subquery, although the main query can use an ORDER BY.
Hence, in this case, programmer needs to have is the following:
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
Inexecutable Code in the question is the following:
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
Learn more here: https://brainly.com/question/14777974