对数据表中的字段求和

对数据表中的字段求和。我用了 “select sum(Amt) as al from Order where UID = rs('ID')” , 可是反馈的内容一直是空的, 各位谁能指点一下?

order 是关键字 order by desc 表示排序;你这里是表吧,用`Order`,单引号包括下

Order 表有Amt 和UID 的前提下执行下面的语句

select sum(Amt) as al from `Order` where UID = '123';

rs('ID') 你想表达啥意思

rs('ID')需要转换一下,不能直接用,改成

“select sum(Amt) as al from Order where UID = “ + rs('ID')

我改成这样,

 <% 

 strsql="select sum(Amt) as al from 'Order' where UID = " + rs("ID")

   %>   

         <% = al %>  

结果:

Microsoft VBScript 运行时错误 错误 '800a000d'

类型不匹配: '[string: "select sum(Amt) as a"]'

是不是Amt字段类型有限定?

Order的单引号是键盘【1】左边那个键,tab上面那个键,类型不匹配应该是rs那个类型,估计是个数字类型,你得加个toString()

strsql="select sum(Amt) as al from `Order` where UID = " + rs("ID").toString()

改成这样:

1、Order需要使用反引号`` 就是英文输入法下,1左边的那个键。

2、uid字段应该是varchar类型,匹配的字符串需要加引号。

strsql="select sum(Amt) as al from `Order` where UID ='" + rs("ID") + "'"


Microsoft VBScript 运行时错误 错误 '800a01b6'

对象不支持此属性或方法: 'toString'

其实Order加不加引号没多大影响,我在其它页面也多次使用“from order 都是正常的

类型不匹配: '[string: "select sum(Amt) as a"]'

Amt是什么类型,是不是这个类型不能sum

q聊:275442185

应该不会,我试了下别的字面也是一样

uid字段应该是varchar类型,匹配的字符串需要加引号。

strsql="select sum(Amt) as al from `Order` where UID ='" + rs("ID") + "'"

都试了

你的UID字段是varchar类型吗?

最好把表结构贴出来,看一下。

这些在其它页面都是常用的参数,应该不是问题


表结构是指字段的类型,Amt和uid的类型,不是要数据的

应该是text,提交数据时没类型,怎么分辩,

试试这样

strsql="select sum(Amt) as al from `Order` where UID = '" & rs("ID")&"'"


看看可以吗

表名最好改一下,order by 是数据库的关键字, 改为tb_order 这样的,以免产生歧义

我要改网站上几十个页面都改,那工作量大了

语句可以吗

若报错,报什么错,贴一下

什么错没有,就是空的

实际上这些早上都试过

可以看一下表的所有字段名吗

order加不加引号也无所谓,问题不在这

你的rs("ID") 有值吗,输出看一下

rs("ID")有的

把他先换为217,执行一下语句,看看

把where 后面的一删掉执行结果也一样

我觉得问题可能在于,整个句式对不对,

你看看是不是这样也不行:

strsql="select UID from `Order`

如果是where后面删掉都有问题,那就是

要么Amt是个关键字,要么就是Amt的类型不支持sum

先给Amt加个`Amt`

Amt是啥类型?

单独查一下UID ,看看可以吗

首先查UID没意义,这是用户的ID号,我汇总它有什么意义,再就是Amt的类型,我刚才说了,我试过用这代码换别的字段做统计,结果是一样的,所以应该Amt的类型也不成问题

你是说换成其他字段可以查出来数据是吗

不是,查不出

UID我也试了一样没有

那就不是字段的问题

你其他页面的查询是什么样子的,贴一下,看看

试试 strsql="select sum(Amt) as al from Order where UID = " & cstr(rs("ID"))

结果还是一样

现在你查其他表,可以查出数据吗,可以看一下,查出数据的,写的是什么代码吗

单查uid都查不出来

strsql="select UID from `Order`"

1 可能是表名的问题

2 你的语句根本没有执行




一直是【Microsoft VBScript 运行时错误 错误 '800a000d' 类型不匹配: '[string: "select sum(Amt) as a"]'】这个错误吗?

真不是表名的问题,这表名一直在用

不是的,现在是空的,啥也没有

一步步来,你现在是空的话,能把sqlstr的内容打印出来吗?

先确认你的sqlstr是对的再说别的。

不明白

在body里面加个输出,看看你的Sqlstr是不是你想要的

<body>

<%

Response.Write(sqlstr)

%>

</body>

没反应

换成

Response.Write('hello')

能在页面上看到hello吗?

如果不能,需要检查一下其他地方,如果可以,就是你的sqlstr出问题了,得解决了才干别的。

那当然

"select sum(Amt) as 'al' from order where UID = '"+rs("ID")+"'"

类型不匹配: '[string: "select sum(Amt) as '"]'