2013-08-01 35 views
2

我正在生成一个报告以显示未付费用类似于哪种费用类型,该费用类型固定了多少金额,该费用类型支付了多少金额以及最终余额金额将支付该费用类型。如何在mysql中减去Group_Concat中的函数

我在这里从5个表像中的类名类表中提取数据,从招生表,从Feevars表费用类型,金额从studentfees表固定收费型,滚动不&学生姓名和最后数额支付的费用类型来自收费表。

我能够通过在选择的统计中提及费用类型名称来产生部分结果,通过总结和减去操作。

这是完整的数据库和我的查询产生的结果。 PLZ看看** @mysql query 在select语句中,我已经提到手动收费类型。 但我想生成的结果没有提及费类型列名。

为此,我做了一两件事,我已采取了所有的费用类型为SQL变量 这样

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

这将导致所有的费用类型分为单行列名。 最后我写了代码来产生我期待的输出,但我得到的错误如错误代码1064:你的sql语法错误。

这是我的最终代码

Expected Output Code

请谁能告诉我,什么是我的SQL查询错误。并建议我如果有?其他方式来做这个报告。

回答

1

您的输出是什么?

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

我认为,@不好......而且,你要使用数组工作...有没有这样的事情在MySQL数组你必须使用LOOP模拟阵列或TMP TABLE。看到这个问题有很好的答案4u:

How can I simulate an array variable in MySQL?

+0

以15结尾是正确的! – jaczes

+0

感谢@jaczes为您的早期反应,但我的预期输出显示每个费用类型,固定费用的费用类型,费用类型的付费金额和余额支付的金额 –

+0

请参阅http://www.sqlfiddle.com/# !2/a26c7/16那里你确实拥有'@ sqlList','@ sqlList1'的内容 - 可能你必须在循环中做到这一点 – jaczes