2012-03-27 5 views
3

Ich bin sehr neu zu Sql, und Probleme mit meinem Gehirn um die Syntax. Ich habe eine Tabelle PM (mit Fields Acct, Amt, Action, Reason), und ich muss einige Felder in der Tabelle aktualisieren, wo Graf (Acct)> 1, und das Amt ist das gleiche. Speziell basierend auf dieser Select-Anweisung:Zugriff 2003 VBA/Sql Update TableA auf Grafenzustand auch in TableA

Dieser Code gibt die Datensätze, die ich weiß, müssen sowieso geändert werden. Sobald jemand es erklärt, bin ich mir sicher, dass es offensichtlich ist, aber ich stecke fest.

Antwort

2

Sie können es so machen, dann verwenden Sie immer noch Ihre GROUP BY für Ihre Amt. Dies wurde in MS Access 2003 getestet und aktualisiert nur die Datensätze in der Unterabfrage:

UPDATE PM 
SET PM.Amt = newValue 
    , (other fields and values) 
WHERE EXISTS 
(
    SELECT t.Acct, t.Amt 
    FROM PM t 
    WHERE PM.Acct = t.Acct 
    GROUP BY t.Acct, t.Amt 
    HAVING Count(t.Acct)>1 
) 
+0

ich bekommen, was Sie tun, und das hilft eine Tonne, aber ich erhalte eine Fehlermeldung: Sie haben versucht, eine Abfrage auszuführen das den angegebenen Ausdruck "Acct" nicht als Teil einer Aggregatfunktion enthält. – graidan

+0

Sie können der Unterabfrage GROUP BY, t.Acct hinzufügen. Ich habe meine Antwort bearbeitet – Taryn

+0

Ich bekomme immer noch einen Fehler, aber es ist ein Datentyp nicht übereinstimmen, und das ist alles auf mich. Vielen Dank! – graidan

Verwandte Themen