mysql - 如何在mysql的Group_Concat中做求和,减法函数

标签 mysql mysql-workbench

我正在生成一份报告以显示未结费用,例如哪种费用类型、该费用类型的固定金额、为该费用类型支付的金额以及最终为该费用类型支付的余额金额。

我在这里从 5 个表中提取数据,例如 Classes 表中的 Class Names、admissions 表中的 Roll no & Student Name、Feevars 表中的 Fee Types、studentfees 表中的费用类型固定金额,以及最终为费用类型支付的金额收费表。

我可以通过加减运算在选择语句中提及费用类型名称来生成部分结果。

这是完整的数据库和生成结果的查询。请看**@mysql query 在选择声明中,我手动提到了费用类型。 但我想生成结果而不提及费用类型作为列名。

为此我做了一件事,我将所有费用类型都放入了一个 sql 变量中 像这样

set @sqlList = null;SELECT GROUP_CONCAT(concat('tsf.', Replace(FeeName,' ',''))) INTO @sqlList FROM tbl_feevars;

这将导致所有费用类型作为列名称进入单行。 最后,我编写了代码来生成我所期望的输出,但我收到类似错误代码 1064:您的 sql 语法错误。

的错误

这是我的最终代码

Expected Output Code

请任何人告诉我,我的 sql 查询中有什么错误。如果有的话建议我??做这份报告的其他方式。

最佳答案

你想要的输出是什么?

我已经在这个 didle 中工作了 http://www.sqlfiddle.com/#!2/a26c7/15

我认为,@ 不好...此外,您想使用数组...MySQL 中没有数组之类的东西 您必须使用 LOOP 来模拟数组或 TMP 表。看到这个问题回答得很好 4u:

How can I simulate an array variable in MySQL?

关于mysql - 如何在mysql的Group_Concat中做求和,减法函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17987282/

相关文章:

MYSQL 查询 - 使用空行值发出正在运行的查询

java - 没有为SQL参数'orgName'提供值:此SqlParameterSource为空

mysql - 如何跟踪 POS 系统一段时间内的产品成本?

MySQL:根据原始表中的数据创建频率新表

带有连接和分组依据的mysql查询

java - 根据 Spring Boot 中的角色获取用户列表

php - 多条记录的时间戳操作

mysql - 非常基本的命令出现 sql 语法错误?为什么?

mysql - 如何创建在 mysql workbench 中选择列中的多个项目的条件语句?

mysql - 授予读取 View 的权限,但拒绝其他表的权限