gpt4 book ai didi

MySQL 将多行合并为一行

转载 作者:行者123 更新时间:2023-11-29 07:31:40 25 4
gpt4 key购买 nike

我有两个表如下:
1.tbl_student:

id  name
1 raj
2 raja
3 raju
4 rajan
  1. tbl_出勤

     id student_id month attended_days
    1 1 1 6
    2 1 2 16
    3 8 1 8
    4 7 2 14
    5 8 2 13
    6 7 1 11

我需要将这两个表将 tbl_attendance 中每个学生每月的多行合并为一行,以获得如下结果:

 id     name    month   attended_days   month   attended_days
1 raj 1 6 2 16
7 raja 1 11 2 14
8 rajan 1 8 2 13

预先感谢您的帮助。

最佳答案

不是在每个记录中显示月份值,
您可以将它们用作列标题,并将出勤率用作它们的值。

使用枢轴类型的解决方案来实现所需的解决方案。

示例:

select s.id as student_id
, s.name as student_name
, max( case when a.month = 1 then a.attended_days else null end ) as month_1
, max( case when a.month = 2 then a.attended_days else null end ) as month_2
, max( case when a.month = 3 then a.attended_days else null end ) as month_3
-- ...
, max( case when a.month = 12 then a.attended_days else null end ) as month_12
from table_student s
left join table_attendance a on s.id = a.student_id
group by s.id, s.name

关于MySQL 将多行合并为一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32437838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com