我是这个领域的新手,我正在使用学费管理系统,每月,每年从学生那里收取学费等
我的MySQL数据库架构如下
Academic_classes表
class_id class_name
1 1st
2 2nd
.....等等
费用类型表
fee_type_id fee_name
1 Admission Fee
2 Tuition Fee
3 Sports Fee
class_wise_fee_plan表
plan_id class_id fee_id金额
1 1 1 5000
2 1 2 1150
3 1 3 350
费用是根据类别
根据您的建议,我添加了一个新表
每年,每月等的收费频率
费用核销表
fee_writeoff_id fee_id月
1月4日
2 2 jan
3 2 feb
等等 ...
我在前端有12个复选框,每个月都有几个月,如何根据复选框计算或显示费用值和费用名称。
我想要这种类型的结果
FeeName四月五月六月.....总计
入场费5000 0 0 5000
学费1100 1100 1100 3300
总计6100 1100 1100 8300
如果从前端的复选框中选择了月份名称,则如何创建mysql存储过程,因为月份名称用逗号分隔了如何遍历和创建案例
最佳答案
请尝试使用CASE进行以下查询,它不是您所要求的完整解决方案,但这可以解决您的一些问题。
SELECT ft.fee_name, (CASE WHEN apr=1 THEN fee_amount ELSE 0 END) AS apr,
(CASE WHEN may=1 THEN fee_amount ELSE 0 END) AS apr,
(CASE WHEN jun=1 THEN fee_amount ELSE 0 END) AS apr,
(CASE WHEN jul=1 THEN fee_amount ELSE 0 END) AS apr,
(CASE WHEN aug=1 THEN fee_amount ELSE 0 END) AS apr,
(CASE WHEN apr=1 THEN fee_amount ELSE 0 END) AS apr,
FROM fee_type ft INNER JOIN fee_plan fp
USING (fee_id)
输出值
fee_name APR MAY JUNE JULY AUG
Admission Fee 5000 0 0 0 0
Tuition Fee 1150 1150 1150 1150 1150