使用PHP和CSS对MySQL数据和格式进行分组

使用PHP和CSS对MySQL数据和格式进行分组,php,css,mysql,Php,Css,Mysql,仅供参考,我正在使用PHP和MySQL 我正在努力将我们的电子表格工作人员rota转换为一个更具互动性的在线rota系统 我可以很好地理解rota系统的所有功能,但是当涉及到格式化它以明确每个部门中的部门和角色时,它就不那么明显了 我不想为每个部门和部门内的每个角色创建对数据库的调用,但我很难理解如何将结果分组,然后以我想要的格式正确输出结果 我明白,这可能是一个非常模糊的解释,我正试图实现,并随时问尽可能多的问题,你喜欢 我希望我讲得通:-) 祝你今天愉快 MySQL数据 所需页面/表格格式

仅供参考,我正在使用PHP和MySQL

我正在努力将我们的电子表格工作人员rota转换为一个更具互动性的在线rota系统

我可以很好地理解rota系统的所有功能,但是当涉及到格式化它以明确每个部门中的部门和角色时,它就不那么明显了

我不想为每个部门和部门内的每个角色创建对数据库的调用,但我很难理解如何将结果分组,然后以我想要的格式正确输出结果

我明白,这可能是一个非常模糊的解释,我正试图实现,并随时问尽可能多的问题,你喜欢

我希望我讲得通:-)

祝你今天愉快

MySQL数据

所需页面/表格格式


如果要按部门获取每个员工的值和总和,可以使用with添加额外的行,并按分组列的每个值进行合计

假设您想显示工资:

select coalesce(name,concat('Total D',Dept)) as Name, sum(Salary) as Salary
from Staff
group by Dept, name with rollup
having coalesce(Dept,0)!=0
结果:

|     Name | Salary |
|----------|--------|
|    Colin |  80000 |
|     John | 100000 |
|    Steve | 120000 |
|   Trevor |  40000 |
| Total D1 | 340000 |
|     Gary |  60000 |
|    Nigel |  50000 |
| Total D2 | 110000 |
|        Name | Salary |
|-------------|--------|
|       Colin |  80000 |
|        John | 100000 |
|       Steve | 120000 |
|      Trevor |  40000 |
|    Total D1 | 340000 |
|        Gary |  60000 |
|       Nigel |  50000 |
|    Total D2 | 110000 |
| Grand total | 450000 |
具有
条件,如果要将最后一行排除在总计之外,如果需要该行,则必须稍微更改
合并()
以获得正确的描述:

select coalesce(name,concat('Total D',Dept),'Grand total') as Name, sum(Salary) as Salary
from Staff
group by Dept, name with rollup
结果:

|     Name | Salary |
|----------|--------|
|    Colin |  80000 |
|     John | 100000 |
|    Steve | 120000 |
|   Trevor |  40000 |
| Total D1 | 340000 |
|     Gary |  60000 |
|    Nigel |  50000 |
| Total D2 | 110000 |
|        Name | Salary |
|-------------|--------|
|       Colin |  80000 |
|        John | 100000 |
|       Steve | 120000 |
|      Trevor |  40000 |
|    Total D1 | 340000 |
|        Gary |  60000 |
|       Nigel |  50000 |
|    Total D2 | 110000 |
| Grand total | 450000 |

你的总数代表总数吗?另外,您希望在第二列中显示哪些数据?请参阅@JashParekh TOT确实代表总计数。第二列(以及更多)是一周中的几天,以及该工作人员是否在这一天上班。