我是这个领域的新手,我正在使用学费管理系统,每月,每年从学生那里收取学费等

我的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

09-20 11:31