0

我正在使用 SQL Server 2000 和经典 ASP 来使用表格(即 HTML 格式)显示结果。我正在尝试获取 SQL 表中存在的列记录的值的总和。为此,我尝试了这个。

Balance Leave =<%
                        sql= "select SUM('no_of_leave_taken') from emp_leave_details where emp_no='"&request.QueryString("id")&"'"  
                        rs.open sql,con,1,2
                        response.Write(con.execute sql)
                        rs.close
                        %>

浏览器中显示的错误是

sum 或 average 聚合运算不能将 varchar 数据类型作为参数。

4

2 回答 2

2

这看起来像一个 SQL 错误 - 如果您在 SQL Server 企业管理器中运行该查询会发生什么?是emp_details.no_of_leave_taken数字字段吗?

我要补充的另一件事——请不要使用未验证的查询字符串值——阅读这个 ASP 友好的 SQL 注入攻击解释,以了解原因。

于 2012-05-10T09:46:37.023 回答
1

我尝试了这个,我自己想出来了<% sql= "select SUM(no_of_leave_taken) as total from emp_leave_details where emp_name='"&request.QueryString("name")&"'" rs.open sql,con,1,2 response.Write(31- rs("total")) %>。这对我来说是新事物……我很困惑,因为上面查询中的表达式“total”对我有用,并且使用rs("total")感谢@在记录集中虚拟地调用为一个新的列字段glenatron 为您提供帮助

于 2012-05-11T03:36:07.007 回答