一、表信息
1.仓库库存信息
| 仓库名 | 库存量 | 月份 |
| A | 100 | 1月份 |
| B | 1000 | 1月份 |
| C | 10 | 1月份 |
| A | 200 | 2月份 |
| B | 2000 | 2月份 |
| C | 20 | 2月份 |
| A | 300 | 3月份 |
| B | 3000 | 3月份 |
| C | 30 | 3月份 |
2.统计每个仓库每个月的库存量(横向展示)
| 仓库名 | 1月份 | 2月份 | 3月份 |
| A | 100 | 200 | 300 |
| B | 1000 | 2000 | 3000 |
| C | 10 | 20 | 30 |
二、sql语句:
1.正常查询:

2.转化sql语句:
SELECT
wname AS 仓库名,
MAX(if(wmonth='1月份',winventory,0)) AS 1月份,
MAX(if(wmonth='2月份',winventory,0)) AS 2月份,
MAX(if(wmonth='3月份',winventory,0)) AS 3月份
FROM
warehouse
GROUP BY
wname;
1.MAX函数意义在于:新的统计字段名并不是表里的字段名 通过函数可以得到新的字段名,其他聚合函数也可以使用比如min等等
2.if函数:if(wmonth='1月份',winventory,0),它的含义为,如果字段名wmonth等于1月份则取1月份值,如果不为一月份则等于0,类似于java中三目运算a>b?1: 2
三、展示效果:

2906

被折叠的 条评论
为什么被折叠?



