Access db ループ - 1 つのテーブルのレコードごとに、別のテーブルにレコードの配列を作成します

StackOverflow https://stackoverflow.com/questions/808331

質問

ネストされたループクエリを作成することは可能ですか? アクセスDB それは 3 番目のテーブルを更新しますか?

マスター(ヘッダー)テーブルがあります。

------------------------
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    |

基本的に、次のすべてのレコードをループする必要があります。 マスター テーブル。

外側のループ:

マスター テーブルの各レコードについて、モダリティを取得します。

内部ループ:

次に、モダリティが一致する temps テーブル内のレコードごとに、詳細テーブルにレコードを作成します (その過程で、temps.priceEa と masters.cost に基づいていくつかの計算を実行します)。

これにより、マスター テーブルのすべてのレコードに対して、(マスター * 一時) 個の新しいレコードが詳細テーブルに作成されます。

詳細テーブルは次のようになります。

----------------------------------------------------------
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
役に立ちましたか?

解決


SELECT m.num, t.modelnumber, m.modality, t.priceea
into myNewTempTable
from masters m  inner  join temp t on m.modality = t.modality
order by m.num, t.modelnumber

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top