Ist es möglich, eine verschachtelte Schleife Abfrage in Access DB erstellen, die eine dritte Tabelle aktualisieren?Access DB-Schleife - für jeden Datensatz in einer Tabelle erstellen Array von Datensätzen in einer anderen Tabelle
Ich habe eine Master (Header) Tabelle:
------------------------
masters
------------------------
num | modality | cost |
------------------------
01 | thing | 23.00 |
02 | thing | 42.00 |
03 | thing | 56.00 |
04 | apple | 11.00 |
05 | apple | 17.00 |
und eine temporäre Tabelle mit Detail Informationen, die ich brauche, würde ein Drittel (tatsächlichen) Details Tabelle zu erstellen, die aus der die Taste Master Tabelle
Hier ist ein Beispiel für die Temp-Tabelle.
----------------------------------
temps
----------------------------------
modelnumber | modality | priceEa |
----------------------------------
| 123 | thing | 1.00 |
| 234 | apple | 2.00 |
| 345 | apple | 3.00 |
| 456 | apple | 4.00 |
| 567 | thing | 5.00 |
Grundsätzlich, ich brauche in dem Meister Tabelle durch jeden Datensatz in einer Schleife.
äußeren Schleife:
für jeden Datensatz in der Tabelle Masters, greifen die Modalität.
innere Schleife:
für jeden Datensatz dann in der temps Tabelle, in der die Modalitäten entsprechen, erstellen Sie einen Datensatz in der Detailtabelle (und in dem Prozess, hat einige Berechnungen auf Basis von temps.priceEa und Meister .Kosten).
Dies sollte (master * temps) Anzahl der neuen Datensätze in der Detailtabelle für jeden Datensatz in der Mastertabelle erstellen.
die Details Tabelle, am Ende sollte wie
----------------------------------------------------------
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
suchen Ich glaube, Sie es didz! Es ist nicht lustig, wie manchmal sql Schleifen Updates/Inserts durchführt, ohne wirklich zu schauen, wie es es tun wird ... es bringt mein Gehirn dazu, das Problem falsch zu denken. Vielen Dank. – m42
Erm, SQL führt das Schleifen nicht konzeptionell durch. Vielleicht würde es hilfreich sein, wenn Sie in Bezug auf eine SQL-Aktualisierung/das Einfügen aller Zeilen betroffenen Zeilen auf einmal denken. – onedaywhen