Sum()函数在MySql中不起作用 [英] Sum() function is not working in MySql

查看:190
本文介绍了Sum()函数在MySql中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

SET _SumRating = (SELECT SUM(RatingCount) from tblSpeakerRatings where SpeakerId = _SpeakerID);


在这里,我选择RatingCount 的总和并将其加载到_SumRating

我可以知道这是什么错误吗?我使用的是存储过程,并且已将_SumRating 声明为OUT variable.


Here i am selecting sum of RatingCount and loading that into _SumRating,

May i know what is the mistake in this? I am using this is Stored Procedure and already declared _SumRating as OUT variable.

推荐答案

MySQL SUM function is used to find out the sum of a field in various records.

To understand SUM function, consider an employee_tbl table, which is having the following records:


mysql> SELECT * FROM employee_tbl;
+ ------ + ------ + ------------ + -------------------- +
| id |名称|工作日期| daily_typing_pages |
+ ------ + ------ + ------------ + -------------------- +
| 1 |约翰| 2007-01-24 | 250 |
| 2 |拉姆| 2007-05-27 | 220 |
| 3 |杰克| 2007-05-06 | 170 |
| 3 |杰克| 2007-04-06 | 100 |
| 4 |吉尔| 2007-04-06 | 220 |
| 5 | Zara | 2007-06-06 | 300 |
| 5 | Zara | 2007-02-06 | 350 |
+ ------ + ------ + ------------ + -------------------- +
设置7行(0.00秒)
现在,假设您要基于上表来计算所有Dialy_typing_pages的总数,那么可以使用以下命令进行计算:

mysql> SELECT SUM(daily_typing_pages)
-> FROM employee_tbl;
+ ------------------------- +
| SUM(daily_typing_pages)|
+ ------------------------- +
| 1610 |
+ ------------------------- +
设置1行(0.00秒)
您可以使用GROUP BY子句获取各种记录集的总和.以下示例将汇总与一个人相关的所有记录,您将拥有每个人的总打字页面.

mysql> SELECT名称,SUM(daily_typing_pages)
-> FROM employee_tbl GROUP BY名称;
+ ------ + ------------------------- +
|名称| SUM(daily_typing_pages)|
+ ------ + ------------------------- +
|杰克| 270 |
|吉尔| 220 |
|约翰| 250 |
|拉姆| 220 |
| Zara | 650 |
+ ------ + ------------------------- +
设置5行(0.17秒)

::用于求和函数的基本Mathod是::从表名中选择SELECT SUM(column_name);

现在,我想您可能会有所想法,但是如果仍然缺少任何内容,则可以 [ ^ ], [^ ]链接.
我认为这可能对您有所帮助.


mysql> SELECT * FROM employee_tbl;
+------+------+------------+--------------------+
| id | name | work_date | daily_typing_pages |
+------+------+------------+--------------------+
| 1 | John | 2007-01-24 | 250 |
| 2 | Ram | 2007-05-27 | 220 |
| 3 | Jack | 2007-05-06 | 170 |
| 3 | Jack | 2007-04-06 | 100 |
| 4 | Jill | 2007-04-06 | 220 |
| 5 | Zara | 2007-06-06 | 300 |
| 5 | Zara | 2007-02-06 | 350 |
+------+------+------------+--------------------+
7 rows in set (0.00 sec)
Now, suppose based on the above table you want to calculate total of all the dialy_typing_pages, then you can do so by using the following command:

mysql> SELECT SUM(daily_typing_pages)
-> FROM employee_tbl;
+-------------------------+
| SUM(daily_typing_pages) |
+-------------------------+
| 1610 |
+-------------------------+
1 row in set (0.00 sec)
You can take sum of various records set using GROUP BY clause. Following example will sum up all the records related to a single person and you will have total typed pages by every person.

mysql> SELECT name, SUM(daily_typing_pages)
-> FROM employee_tbl GROUP BY name;
+------+-------------------------+
| name | SUM(daily_typing_pages) |
+------+-------------------------+
| Jack | 270 |
| Jill | 220 |
| John | 250 |
| Ram | 220 |
| Zara | 650 |
+------+-------------------------+
5 rows in set (0.17 sec)

:: Basic Mathod for Sum function is :: SELECT SUM(column_name) FROM table_name;

Now, I think you might get idea, but still if anything is missing then you can This[^], This[^] and This[^] Links.
I think it might be helpful to you.


可能是您在参数之前缺少@符号.

这样声明

_SumRating @ NVARCHAR(2000)输出

然后像这样设置

SET @_SumRating =(从tblSpeakerRatings中选择SUM(RatingCount),其中SpeakerId = _SpeakerID);

-SG
May be you are missing the @ symbole before your parameter.

Declare like this

_SumRating@ NVARCHAR(2000) OUTPUT

and then set like this

SET @_SumRating = (SELECT SUM(RatingCount) from tblSpeakerRatings where SpeakerId = _SpeakerID);

-SG


这篇关于Sum()函数在MySql中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆