我试图解决一个问题,即我将数据从一个系统导出到另一个系统。
假设我有一张表:
id | item_num
1 1
2 1
3 2
4 3
5 3
6 3
我需要在表中添加一列并将其更新为包含基于item的递增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 server source,custom / unknown ODBC driven destination)
答案 0 :(得分:1)
也许您可以在SQL Server数据库中create a view,然后从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