Aggregate multiplicate function

后端 未结 2 1791
野性不改
野性不改 2020-12-21 16:51

I have a table of the following:

1    X    10
2    X    30
3    Y    5
4    Y    2
...etc

I need to turn it into:

X    300          


        
2条回答
  •  北荒
    北荒 (楼主)
    2020-12-21 17:23

    You can define following two functions:

    Public Function ResetProd() As Boolean
        Call Prod(Null)
        ResetProd = True
    End Function
    
    Public Function Prod(nNumber As Variant) As Double
        Static nPrevNumber As Double
        If IsNull(nNumber) Then
            nPrevNumber = 1
        Else
            nPrevNumber = nPrevNumber * nNumber
        End If
        Prod = nPrevNumber
    End Function
    

    ...and use them as follows:

    SELECT PROD(_column_for_wich_you_want_product_) FROM _your_table_
    WHERE RESETPROD()
    

提交回复
热议问题