开发中遇到了下面这样的问题
表结构如下
进销存系统中同一个goods按照不同的warehouse分成不同的id,,
本来按照仓库显示无可厚非,甲方需求展示效果为:不同仓库按照名称展示一列
这样的话,查询就要把不同的id和warehouse组成一列,分别计算nums;
- 场景1,假如warehouse等于1为上海仓,2为北京仓,一列展示效果为商品,总库存(nums),上海库存,北京库存
执行sql为
select goods,attr,sum(nums) as nums,
(case when warehouse='1' then nums else 0 end) '上海仓',
(case when warehouse='2' then nums else 0 end) '北京仓'
from table GROUP BY goods,attr;
执行结果为
- 总结
case不同的结果,输出不同的列别名,一些情况可能还需要sum配合,获取其他表字段;