PDA

Vollständige Version anzeigen : Aktualisierungsabfrage


Huma
14.06.2002, 12:55
Hallo Leute,
ich habe folgendes Problem:
Es werden in zwei verschachtelten Schleifen eine Tablle 'Mitarbeiter'(name gehalt) und eine Tabelle 'Boni'(abGehalt, Bonus) durchlaufen. Zuerst wird auf den ersten Mitarbeiter geprungen und dann der 'gehalt' des Mitarbeiters mit mit 'abGehalt' aus der Tablle Boni verglichen Wurde zu dem entsprechenden Mitarbeiter der richtige Datensatz aus der Tablle Boni gefunden, soll aus DIESEM Satz für den gerade AKTIVEN Mitarbeiter (und nur für den) der Bonus aus der Tablle Boni zum 'gehalt' aus der Tabelle Mitarbeiter hinzuaddiert werden.
Dafür verwende ich folgende SQL Anweisung:

DoCmd.RunSQL ("UPDATE Mitarbeiter, Boni SET Mitarbeiter.gehalt = [gehalt]+[Bonus];")

So und jetzt da Problem:
Hat er zwei passende Datensätze aus den beiden Tabellen gefunden aktualisiert er jeden Datensatz der einen Tablle mit jedem Datensatz der anderen Tablle und nicht nur den im Schleifendurchlauf gerade aktiven.

vielen Dank für Euere Antwort,

mfG

Joachim Hofmann
16.06.2002, 22:38
Hallo Huma,

ich vermute, Du willst folgendes:

gesetzt der Fall, Mitarbeiter und Boni sind mit einer Mitarbeiter-ID ma_id verbunden, dann wäre es:


UPDATE Mitarbeiter
SET Gehalt = Gehalt + Boni.Bonus
FROM Mitarbeiter, Boni
WHERE Mitarbeiter.ma_id = Boni.ma_id

oder, falls das syntaktisch nicht geht (da gibt es Unterschiede in VB und SQL Server), versuche

UPDATE Mitarbeiter
SET Gehalt = Gehalt + Boni.Bonus
FROM Mitarbeiter INNER JOIN Boni
ON Mitarbeiter.ma_id = Boni.ma_id

HTH