简体   繁体   English

在MS-ACCESS SQL中添加一行查询

[英]add a row to query in MS-ACCESS SQL

I'm trying to add to the following query:我正在尝试添加到以下查询:

    strSQL = "SELECT  fldName, blkName, CDbl(fldValue) " & _
        "FROM dbSecurities2 as S " & _
        "WHERE " & _
        "S.isin='" & Code & "' " & _
        "AND " & _
        "S.fldName='" & fldName & "' "

A row that makes the sum of the fldValue like:使 fldValue 之和的行如下:

    strSQL = "SELECT  fldName, blkName, CDbl(fldValue) " & _
        "FROM dbSecurities2 as S " & _
        "UNION " & _
        "SELECT Sum(fldValue) AS fldValue " & _
        "WHERE " & _
        "S.isin='" & Code & "' " & _
        "AND " & _
        "S.fldName='" & fldName & "' "

the error is:错误是:

Run -time error '3141'.运行时错误“3141”。 The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect SELECT 语句包含保留字或参数名称拼写错误或缺失,或标点不正确

I found this is working:我发现这是有效的:

   strSQL = "SELECT fldName, blkName, CDbl(fldValue) " & _
        "FROM dbSecurities2 as S " & _
        "WHERE " & _
        "S.isin='" & Code & "' " & _
        "AND " & _
        "S.fldName='" & fldName & "' " & _
        "UNION " & _
        "SELECT '' AS fldName, 'Total' AS Total, Sum(CDbl(fldValue)) " & _
        "FROM dbSecurities2 AS B " & _
        "WHERE " & _
        "B.isin='" & Code & "' " & _
        "AND " & _
        "B.fldName='" & fldName & "' "

This should run as expected:这应该按预期运行:

    strSQL = "SELECT fldName, blkName, CDbl(fldValue) " & _
        "FROM dbSecurities2 AS S " & _
        "WHERE " & _
        "S.isin='" & Code & "' " & _
        "AND " & _
        "S.fldName='" & fldName & "' " & _
        "UNION ALL " & _
        "SELECT TOP 1 "", "Total", Sum(CDbl(fldValue)) " & _
        "FROM dbSecurities2"

If you have Null values, use Nz :如果您有Null值,请使用Nz

    strSQL = "SELECT fldName, blkName, CDbl(Nz(fldValue, 0)) " & _
        "FROM dbSecurities2 AS S " & _
        "WHERE " & _
        "S.isin='" & Code & "' " & _
        "AND " & _
        "S.fldName='" & fldName & "' " & _
        "UNION ALL " & _
        "SELECT TOP 1 "", "Total", Sum(CDbl(Nz(fldValue, 0))) " & _
        "FROM dbSecurities2"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM