2010-02-03 179 views

回答

2

有這個一個沒有功能,你就必須這樣做:

select col1, col2, col3, (nz(col1,0)+nz(col2,0)+nz(col3,0)) as Sum from Table 
+0

小心空值。 1 +空+ 1 = NULL。你可以用Nz來解決它。 – Fionnuala 2010-02-03 17:27:31

0

如何:

Public Function iSum(ParamArray p()) As Variant 
    Dim i As Long 
    Dim lngUBound As Long 
    Dim v As Variant 

    v = Nz(p(LBound(p)), 0) 
    lngUBound = UBound(p) 
    For i = LBound(p) + 1 To lngUBound 
     If Not IsNull(p(i)) Then 
     v = v + p(i) 
     End If 
    Next 
    If IsNull(v) Then 
     v = 0 
    End If 
    iSum = v 
    End Function 

,並在SQL:

SELECT col1, col2, col3, iSum(col1,col2,col3) As Sum 
    FROM Table 

你可以傳遞任意數量的列,並且它們中的任何一個是否爲空都沒關係。如果全部爲空,則返回0.

+0

Bascially,我有什麼是5列標題與每列中的信息和5行標題與信息在每一行,所以它的信息表,,,,所以我如何把「信息」在每一列,但只有從第1行,並將其放置在一個新的獨立單元格中? – 2010-02-04 11:34:39

+0

@HansUp:你說得對。我修改了代碼來解決這個問題。 – 2010-02-05 03:04:01

+0

@Jeff Anderson:在我看來,@ Remou的答案能夠做到這一點,因爲他會介意。也許你沒有正確地解釋上下文,因爲這兩個答案都會讓我完全解決問題。 – 2010-02-05 03:05:43