Freigeben über


Sum-Funktion (Microsoft Access SQL)

Gilt für: Access 2013 | Access 2016

Gibt die Summe einer Menge von Werten zurück, die in einem bestimmten Feld einer Abfrage enthalten sind.

Syntax

Sum(expr)

Der Platzhalter Ausdr stellt einen Zeichenfolgenausdruck dar, der das Feld mit den hinzuzufügenden numerischen Daten identifiziert, oder einen Ausdruck, der mit den Daten in diesem Feld eine Berechnung durchführt. Operanden in Ausdr können den Namen eines Tabellenfelds, eine Konstante oder eine Funktion einschließen (wobei es sich entweder um eine systeminterne oder benutzerdefinierte Funktion handeln kann, jedoch nicht um eine der anderen SQL-Aggregatfunktionen).

Hinweise

Mit der Sum-Funktion werden die Werte in einem Feld summiert. Sie können mit der Sum-Funktion beispielsweise die Gesamtfrachtkosten ermitteln.

Die Funktion Summe ignoriert Datensätze, die Null-Felder enthalten. Das folgende Beispiel zeigt, wie Sie die Summe der Produkte der Felder UnitPrice und Quantity berechnen können:

SELECT 
Sum(UnitPrice * Quantity) 
AS [Total Revenue] FROM [Order Details];

Verwenden Sie die Funktion Summe in einem Abfrageausdruck. Sie können diesen Ausdruck auch in der SQL-Eigenschaft eines QueryDef-Objekts verwenden oder beim Erstellen eines Recordset-Objekts, das auf einer SQL-Abfrage basiert.

Beispiel

In diesem Beispiel wird die Orders-Tabelle verwendet, um den Gesamtwert der Bestellungen zu berechnen, die nach Großbritannien versandt wurden.

In diesem Beispiel wird die EnumFields-Prozedur aufgerufen, die im Beispiel für die SELECT-Anweisung enthalten ist.

Sub SumX() 
 
    Dim dbs As Database, rst As Recordset 
 
    ' Modify this line to include the path to Northwind 
    ' on your computer. 
    Set dbs = OpenDatabase("Northwind.mdb") 
 
    ' Calculate the total sales for orders shipped to 
    ' the United Kingdom. 
    Set rst = dbs.OpenRecordset("SELECT" _ 
        & " Sum(UnitPrice*Quantity)" _ 
        & " AS [Total UK Sales] FROM Orders" _ 
        & " INNER JOIN [Order Details] ON" _ 
        & " Orders.OrderID = [Order Details].OrderID" _ 
        & " WHERE (ShipCountry = 'UK');") 
 
    ' Populate the Recordset. 
    rst.MoveLast 
 
    ' Call EnumFields to print the contents of the  
    ' Recordset. Pass the Recordset object and desired 
    ' field width. 
    EnumFields rst, 15 
     
    dbs.Close 
 
End Sub

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.