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' AND RowNum BETWEEN 1 and (1 + 100)
ORDER BY VRDATE DESC
我試圖執行SQL Server上的這個查詢,並不斷給這個錯誤SQL錯誤
無效列名「ROWNUM」。
任何人都可以請看看,並告訴我我在做什麼錯在這裏?
更新
我最初使用的查詢是
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
但在數據中的數據是巨大的,使用此查詢減慢檢索過程,所以我修改了查詢如上現在我收到未定義列的這個錯誤。
您使用的是什麼版本的TSQL? –
'的Microsoft SQL Server 2012(SP1) - 11.0.3128.0(英特爾X86) \t 2012年12月28日19時06分41秒 \t版權所有(c)Microsoft公司 \t Express版本在Windows NT 6.2(建設9200:)' –