【问题标题】:how to do sum,subtract functions in Group_Concat in mysql如何在 mysql 中的 Group_Concat 中进行求和、减法
【发布时间】:2013-08-01 15:47:07
【问题描述】:

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

在这里,我从 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;

这将导致所有费用类型作为列名变成单行。 最后,我编写了代码来生成我所期望的输出,但是我收到了类似 Error Code 1064: You have error in your sql syntax.

之类的错误。

这是我的最终代码

Expected Output Code

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

【问题讨论】:

    标签: mysql mysql-workbench


    【解决方案1】:

    你想要的输出是什么?

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

    我想,那个@不好......而且,你想使用数组...... MySQL中没有数组这样的东西你必须使用LOOP来模拟数组或TMP TABLE。看到这个问题有很好的答案 4u:

    How can I simulate an array variable in MySQL?

    【讨论】:

    • 感谢@jaczes 的早期回复,但我的预期输出是显示每种费用类型、费用类型的固定金额、费用类型的已支付金额和要支付的余额金额
    • sqlfiddle.com/#!2/a26c7/16那里你确实有@sqlList@sqlList1的内容 - 可能你必须在循环中这样做
    • 设置@sqllist时必须更加具体
    • 经过修改后,您现在将结果输入@sqlLsit=tsf.AdmissionFee,tsf.SplFee,tsf.TutionFee,tsf.ComputerFee,tsf.Stationary,tsf.Transport,tsf.Hostelfee,tsf.Lab ,tsf.Library,tsf.Miscell
    • 以及@sqlList1=tsf.AdmissionFee,tsf.SplFee,tsf.TutionFee,tsf.ComputerFee,tsf.Stationary,tsf.Transport,tsf.Hostelfee,tsf.Lab,tsf.Library, tsf.Miscell
    猜你喜欢
    • 2015-05-05
    • 2019-08-21
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 2016-03-26
    • 2011-09-04
    相关资源
    最近更新 更多