今天理了一段帆软的sql语句,记录一下这个列转行的unpivot语句的用法。
有一个表sales是如下结构的
但是我想得到一个这样的数据
然后,功能要求是根据选择的月份区间,显示该区间内销量的总和,如,
选择区间为1月-3月时,显示为
我们来逐步实现以上的要求,首先是由数据1到数据2,要用到我们的unpivot
对数据1sales使用unpivot
SELECT
t.模块,t.机械,/*不变的列*/
t.销量,t.月份/*新的列*/
FROM (
sales unpivot (
销量 FOR 月份 IN (
1月销量 as '1',
2月销量 as '2',
3月销量 as '3',
4月销量 as '4',