我正在生成一份报告以显示未结费用,例如哪种费用类型、该费用类型的固定金额、为该费用类型支付的金额以及最终为该费用类型支付的余额金额。
我在这里从 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 语法错误。
的错误这是我的最终代码
请任何人告诉我,我的 sql 查询中有什么错误。如果有的话建议我??做这份报告的其他方式。
最佳答案
你想要的输出是什么?
我已经在这个 didle 中工作了 http://www.sqlfiddle.com/#!2/a26c7/15
我认为,@ 不好...此外,您想使用数组...MySQL 中没有数组之类的东西 您必须使用 LOOP
来模拟数组或 TMP 表
。看到这个问题回答得很好 4u:
关于mysql - 如何在mysql的Group_Concat中做求和,减法函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17987282/