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 server 源,自定义/未知 ODBC 驱动的目标)

4

1 回答 1

1

也许您可以在 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
于 2013-02-05T22:35:34.127 回答