我使用下面的代码,
SELECT RowsCount = ROW_NUMBER() OVER(ORDER BY PrijsBoek.[Item Code] DESC, PrijsBoek.[Buy-From BP Code] DESC),
*
INTO #Student
FROM [iqbs DataWarehouse].[Purchase].[factPurchasePriceBooks] as PrijsBoek
DECLARE @MaxRowsCount INT
SET @MaxRowsCount = (SELECT MAX(RowsCount) FROM #Student)
DECLARE @Iter INT
SET @Iter = (SELECT MIN(RowsCount) FROM #Student)
WHILE @Iter <= @MaxRowsCount
BEGIN
SELECT *
FROM #Student
WHERE RowsCount = @Iter
SET @Iter = @Iter + 1
END
DROP TABLE #Student
但是我收到以下错误消息:
Msg 207, Level 16, State 1, Line 7
Invalid column name 'RowsCount'.
Msg 207, Level 16, State 1, Line 9
Invalid column name 'RowsCount'.
Msg 207, Level 16, State 1, Line 14
Invalid column name 'RowsCount'.
有人知道吗?
答案 0 :(得分:0)
尝试以下代码并根据您的具体情况采用它:
SELECT RowsCount = ROW_NUMBER() OVER(ORDER BY Message_Id DESC), *
INTO #Student
FROM sys.Messages
DECLARE @MaxRowsCount INT = @@ROWCOUNT, @Iter INT = 1, @Text AS VARCHAR(MAX);
SELECT @Iter , @MaxRowsCount
WHILE @Iter <= @MaxRowsCount
BEGIN
SELECT @Text = Text FROM #Student WHERE RowsCount = @Iter
PRINT @Text
SET @Iter += 1;
END
DROP TABLE #Student