数据库的行列互换问题

一、表信息

1.仓库库存信息

仓库名库存量月份
A1001月份
B10001月份
C101月份
A2002月份
B20002月份
C202月份
A3003月份
B30003月份
C303月份

2.统计每个仓库每个月的库存量(横向展示)

仓库名1月份2月份3月份
A100200300
B100020003000
C102030

二、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

三、展示效果:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值