Share via


Sum 関数 (Microsoft Access SQL)

適用先: Access 2013 | Access 2016

クエリで指定したフィールドにある値の合計を返します。

構文

Sum(expr)

expr プレースホルダーは、追加する数値データを含むフィールドを識別する文字列式、またはそのフィールド内のデータを使用して計算を実行する式を表します。 expr のオペランドには、テーブル フィールド、定数、または関数の名前を含めることができます (組み込み関数またはユーザー定義関数のいずれかでも、他の SQL 集計関数の 1 つでもかまいません)。

注釈

Sum 関数は、フィールドに格納されている値の合計を計算します。 たとえば、運送料の合計を求める場合にこの Sum 関数を使用します。

Sum 関数は、 Null 値のフィールドのあるレコードを除外して計算します。 たとえば、次の例では UnitPrice (単価) と Quantity (数量) から Total Revenue (総売上) を求めます。

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

クエリ式で Sum 関数を使用します。 この式は、QueryDef オブジェクトの SQL プロパティ、または SQL クエリに基づいて Recordset を作成するときにも使用できます。

次の使用例では、Orders テーブルを使用して、英国に出荷された受注品の総売上高を計算します。

この例では、EnumFields プロシージャを呼び出します。EnumFields プロシージャについては、SELECT ステートメントの使用例を参照してください。

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

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。