繁体   English   中英

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

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

我正在尝试添加到以下查询:

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

使 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 & "' "

错误是:

运行时错误“3141”。 SELECT 语句包含保留字或参数名称拼写错误或缺失,或标点不正确

我发现这是有效的:

   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 & "' "

这应该按预期运行:

    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"

如果您有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