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:)' –