Oracle/SQL—按月份分列的销售额

Oracle/SQL—按月份分列的销售额,sql,oracle,Sql,Oracle,您好,我已经创建了以下查询,用于按月拉取销售人员的总订单。虽然这让我获得了一个销售人员所需的数据,但我需要为一个以上的销售人员运行它。我想完成的是一个查询,它为几个不同的销售人员提供数据,并按月份进行细分,月份是列名称(列动态到被提取的月份)。如下图所示 SalesMen - 10-2017 - 11-2017 - 12-2017 - 01/2018 ------------------------------------------------------------ Sal

您好,我已经创建了以下查询,用于按月拉取销售人员的总订单。虽然这让我获得了一个销售人员所需的数据,但我需要为一个以上的销售人员运行它。我想完成的是一个查询,它为几个不同的销售人员提供数据,并按月份进行细分,月份是列名称(列动态到被提取的月份)。如下图所示

 SalesMen   -   10-2017     - 11-2017 - 12-2017 - 01/2018
------------------------------------------------------------
Salesmen_1   Month_total(5)    15       300       100
Salesmen_2       100          948       821       684
当前代码:

select (case when region_code in ('123','124') then 'SalesMen_1' else 'N/A' end)SalesMen, to_char(DATE_ENTERED, 'MM-YYYY') as MM_YYYY, Count(ORder_NO) as Month_Total
from ORDERS 
where 
REGEXP_like (ORder_NO, '^W|^E')
and DATE_ENTERED between ADD_MONTHS(TO_DATE(TO_CHAR(ADD_MONTHS(SYSDATE, 2), 'YYYY') || '-01-01', 'YYYY-MM-DD'), -3) and TO_DATE(TO_CHAR(SYSDATE, 'YYYY-MM')|| '-01', 'YYYY-MM-DD') - 1
and region_code in ('123','124')
group by  to_char(DATE_ENTERED, 'MM-YYYY'),(case when region_code in ('123','124') then 'SalesMen_1' else 'N/A' end)
order by to_char(DATE_ENTERED, 'MM-YYYY') desc
结果:

查找PIVOT,它似乎是您希望从当前结果和所需结果中得到的结果。但是,如果月份范围是动态的,则必须使用动态SQL作为PIVOT。我也在做类似的事情,以月为轴心,这样可以给你一个起点。谢谢轴心帮我实现了我想要的。