3番目のテーブルを更新するネストされたループクエリをAccessDBに作成することは可能ですか?
マスター(ヘッダー)テーブルがあります:
------------------------
masters
------------------------
num | modality | cost |
------------------------
01 | thing | 23.00 |
02 | thing | 42.00 |
03 | thing | 56.00 |
04 | apple | 11.00 |
05 | apple | 17.00 |
マスターテーブルからキーオフする3番目の(実際の)詳細テーブルを作成するために必要な詳細情報を含む一時テーブル
これが一時的な詳細表のサンプルです。
----------------------------------
temps
----------------------------------
modelnumber | modality | priceEa |
----------------------------------
| 123 | thing | 1.00 |
| 234 | apple | 2.00 |
| 345 | apple | 3.00 |
| 456 | apple | 4.00 |
| 567 | thing | 5.00 |
基本的に、mastersテーブルのすべてのレコードをループする必要があります。
アウターループ:
マスターテーブルのレコードごとに、モダリティを取得します。
内部ループ:
次に、モダリティが一致するtempsテーブルの各レコードについて、detailsテーブルにレコードを作成します(その過程で、temps.priceEaとmasters.costに基づいて計算を行います)。
これにより、mastersテーブルのすべてのレコードについて、detailsテーブルに(masters * temps)数の新しいレコードが作成されます。
詳細表は、次のようになります。
----------------------------------------------------------
details
----------------------------------------------------------
num | modelnumber | modality | priceEa | adjustedCost |
----------------------------------------------------------
| 01 | 123 | thing | 1.00 | (do calc here)
| 01 | 567 | thing | 5.00 | (do calc here)
| 02 | 123 | thing | 1.00 | (do calc here)
| 02 | 567 | thing | 5.00 | (do calc here)
| 03 | 123 | thing | 1.00 | (do calc here)
| 03 | 567 | thing | 5.00 | (do calc here)
| 04 | 234 | apple | 2.00 | (do calc here)
| 04 | 345 | apple | 3.00 | (do calc here)
| 04 | 456 | apple | 4.00 | (do calc here)
| 05 | 234 | apple | 2.00 | (do calc here)
| 05 | 345 | apple | 3.00 | (do calc here)
| 05 | 456 | apple | 4.00 | (do calc here)
...etc