MS Access での行番号付けの実現
SQL Server などのデータベースで一般的に見られる「パーティション分割による行番号」機能を使用すると、次のことが可能になります。結果セットの指定されたパーティション内の行に連続する整数値を割り当てること。 MS Access はこの関数をネイティブにサポートしていませんが、同様の結果を達成することは可能です。
自己結合メソッド
「パーティション上の行番号」をエミュレートする 1 つのアプローチAccess の「By」は、不等な自己結合を介して行われます。次のテーブルについて考えてみましょう。
Ino | Type | DOC |
---|---|---|
1 | 1800xxc1 | 3a |
2 | 1810xxc2 | 3b |
3 | 1700xxc3 | 3c |
4 | 1700xxc4 | 3a |
5 | 1800xxc5 | 3a |
6 | 1800xxc6 | 3a |
7 | 1800xxc7 | 3b |
次のクエリは、自己結合を使用して、「DOC」フィールドに基づいてパーティション内の行番号を計算します。
SELECT t1.DOC, t1.Type, COUNT(*) AS [Ino Seq] FROM MyData AS t1 INNER JOIN MyData AS t2 ON t2.DOC = t1.DOC AND t2.Ino <= t1.Ino GROUP BY t1.DOC, t1.Type ORDER BY 1, 3
このクエリは、次の結果:
DOC | Type | Ino Seq |
---|---|---|
3a | 1800xxc1 | 1 |
3a | 1700xxc4 | 2 |
3a | 1800xxc5 | 3 |
3a | 1800xxc6 | 4 |
3b | 1810xxc2 | 1 |
3b | 1800xxc7 | 2 |
3c | 1700xxc3 | 1 |
以上がMS Access で ROW_NUMBER() OVER (PARTITION BY) 機能をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。