我相信有人问过类似的问题,但我找不到适合我的解决方案。
我有一个数据库,用于对数字化书籍及其页面进行排序,我正在尝试对包含地图的数千页进行排序。在我使用的两个表中,第一个列出了一本书中的所有页面以及它们在书中出现的顺序,它有三列(bookID、pageOrder、pageID),每一页都有自己的行。第二个表列出了每个页面上出现的所有地方(在地图中),如果一个页面上有多个地方,则它有两列(pageID,placeID),然后为每个地方添加一个新行到表中。
我需要做的是创建一个 select 语句,为每个 pageID/placeID 组合提供一个唯一编号,但这些编号必须按照它们在书中出现的顺序排列。在 SQL Server 中,我会这样做:
SELECT ROW_NUMBER() OVER(ORDER BY bp.bookID, bp.pageOrder, pp.placeID) AS uniqueNumber, pp.pageID, pp.placeID
FROM booksAndPages AS bp INNER JOIN pagesAndPlaces AS pp ON bp.pageID = pp.pageID
不幸的是,我一直在使用 Access。理想情况下,我想(如果可能的话)用一个类似于上面的 SQL 语句来完成它,但我也会尝试使用 VBA。
任何帮助是极大的赞赏。