如何编写mysql查询以获得以下结果

S V*_*esh 1 php mysql codeigniter

我有两张桌子

1) students
2) fees_paid
Run Code Online (Sandbox Code Playgroud)

学生表如下

id              Name
 1              xxxxxx
 2              yyyyyy
 3              zzzzzz
Run Code Online (Sandbox Code Playgroud)

fees_paid如下

id    student_id           date            fees_paid
1      1                02-01-2015             250
2      1                05-01-2015             500
3      2                07-01-2015             400
4      1                06-02-2015             100
5      2                08-02-2015             200
6      3                04-05-2015             1000
Run Code Online (Sandbox Code Playgroud)

我需要一个结果表如下

Name         Jan       Feb     Mar    April     May


xxxxxx      750       100       0        0       0
yyyyyy      400       200       0        0       0
zzzzzz      0         0         0        0      1000
Run Code Online (Sandbox Code Playgroud)

如何编写mysql查询以获取上述结果集

Nug*_*get 5

试试这个 :

SELECT
    s.name,
    sum(case when month(f.date) = '01' then f.fees_paid else 0 end) as 'Jan',
    sum(case when month(f.date) = '02' then f.fees_paid else 0 end) as 'Feb',
    sum(case when month(f.date) = '03' then f.fees_paid else 0 end) as 'Mar',
    sum(case when month(f.date) = '04' then f.fees_paid else 0 end) as 'April',
    sum(case when month(f.date) = '05' then f.fees_paid else 0 end) as 'May'
FROM fees_paid f 
INNER JOIN students s ON s.id = f.student_id
GROUP BY s.id
Run Code Online (Sandbox Code Playgroud)