2013-04-12 82 views
0

使用SQL Server 2008更新表增量場

嗨了這個查詢的位置:

CREATE PROCEDURE [dbo].[GenerateNumbers] 
@pg varchar(255) 
AS 
BEGIN 
DECLARE @Counter as int 
SET @Counter = 0 
UPDATE dbo.paretoMain 

SET @counter = NewPareto = @counter +1 
WHERE PG = @pg 


END 

工作得很好,只是我希望它由1列的特定爲了做到這一點。基本上按第1列排序。

似乎無法弄清楚如何有什麼想法?

謝謝你們!

編輯:

好吧,似乎我已經迷茫的人,所以在這裏。

表中的3列。 1稱爲「newpareto」1稱爲「銷售」1稱爲「零件」。 銷售有貨幣,部分是varchar。 Newpareto是空白的。

我想100個記錄(例如)100個數字,所以當row1,Newpareto = 1。 這個查詢我提供這樣做。 但是。 100條記錄沒有排序。我需要的是以某種方式在該處添加訂單,以便按銷售額欄排序,以便頂級銷售額(例如£100.00)在Newpareto欄中爲1。 更清晰嗎?

+0

你的意思是第1列可以責令升序或降序並且要按照順序,它是上升或下降的條件?你的意思是你想增加第1列嗎?列1中的數據是什麼? –

+0

nope我想把數字1-100可以說在名爲Newpareto的列。但順序應該是一個稱爲第1列的實體(實際上稱爲銷售) – lemunk

+1

您能舉個例子嗎?我沒有得到它。 –

回答

0

我認爲這可能是你正在嘗試做的事:

update paretoMain 
set NewPareto=rn 
from (select Sales, row_number() over(order by Sales desc) as rn from paretoMain) as x 
where paretoMain.Sales=x.Sales 
+0

,我終於在週末想到了。感謝您的幫助,讓您的答案成爲答案 – lemunk