2013-02-05 235 views
1

我正試圖圍繞我從一個系統導出數據到另一個問題的問題。根據列添加自動遞增數

比方說,我有一個表,如:

id | item_num 
1  1    
2  1    
3  2    
4  3    
5  3   
6  3    

我需要添加一列到表和更新,以包含基於項目的遞增product_num場。這將是上表給出的最終結果。

id | item_num | product_num 
1  1   1 
2  1   2 
3  2   1 
4  3   1 
5  3   2 
6  3   3 

有關這方面的任何想法?

編輯:這是在Access 2010中正在做從一個系統到另一個系統(SQL服務器源,自定義/未知的ODBC驅動目的地)

+0

什麼是您使用RDBMS(如MySQL,Oracle或MS SQL服務器)?順便說一句,期望的結果是什麼? –

+0

更新OP以反應答案,謝謝! – mikeds

回答

1

或許你可以create a view在您的SQL Server數據庫,然後從Access中選擇插入到您的目的地。在SQL Server

可能的解決方案:

-- Use row_number() to get product_num in SQL Server 2005+: 
select id 
    , item_num 
    , row_number() over (partition by item_num order by id) as product_num 
from MyTable; 

-- Use a correlated subquery to get product_num in many databases: 
select t.id 
    , t.item_num 
    , (select count(*) from MyTable where item_num = t.item_num and id <= t.id) as product_num 
from MyTable t; 

相同的結果:

id   item_num product_num 
----------- ----------- -------------------- 
1   1   1 
2   1   2 
3   2   1 
4   3   1 
5   3   2 
6   3   3 
+0

第二種選擇正是我所期待的。謝謝! – mikeds