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查询以获取上述结果集
试试这个 :
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)
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |