Oracle11g Oracle listagg查询

Oracle11g Oracle listagg查询,oracle11g,pivot,listagg,Oracle11g,Pivot,Listagg,这是我的查询结果: 周末日期CCNAME PHNAME比率 2015年2月8日苹果生产线1日L&I工作0.45 2015年2月8日苹果生产线1日分拣机6.85 2015年2月8日苹果生产线1天托盘填充12.93 2015年2月8日苹果生产线1日WH一般劳工5.6 2015年2月8日苹果生产线1日WH主管1.48 2015年2月15日苹果生产线1日L&I工作0.42 2015年2月15日苹果生产线1日分拣机6.09 2015年2月15日苹果生产线1天托盘填充11.9 2015年2月15日苹果生产

这是我的查询结果:

周末日期CCNAME PHNAME比率 2015年2月8日苹果生产线1日L&I工作0.45 2015年2月8日苹果生产线1日分拣机6.85 2015年2月8日苹果生产线1天托盘填充12.93 2015年2月8日苹果生产线1日WH一般劳工5.6 2015年2月8日苹果生产线1日WH主管1.48 2015年2月15日苹果生产线1日L&I工作0.42 2015年2月15日苹果生产线1日分拣机6.09 2015年2月15日苹果生产线1天托盘填充11.9 2015年2月15日苹果生产线1日WH一般劳工5.42 2015年2月15日苹果生产线1日WH主管3.46 2015年2月22日苹果生产线1日L&I工作0.43 2015年2月22日苹果生产线1日分拣机6.01 2015年2月22日苹果生产线1天托盘灌装12.09 2015年2月22日苹果生产线1日WH一般劳工4.9 2015年2月22日苹果生产线1日WH主管1.71

我的老板想从侧面得到数据。 有没有办法将我的查询结果格式化为以下格式:

CCNAME PHNAME 08-Feb-15 15-Feb-15 22-Feb-15 苹果生产线1天L&I工作0.45 0.42 0.43 苹果生产线1天分拣机6.85 6.09 6.01 苹果生产线1天托盘填充12.93 11.9 12.09 苹果生产线1日WH一般劳工5.6 5.42 4.9 苹果生产线1-日WH主管1.48 3.46 1.71

或者像这样:

CCNAME PHNAME 08-FEB-15,15-FEB-15,22-FEB-15 苹果生产线1天的L&I工作。45、.42、.43 苹果生产线1天分拣机6.85,6.09,6.01 苹果生产线1天托盘填充12.93,11.9,12.09 苹果生产线1天WH普通劳动力5.6,5.42,4.9 苹果生产线1-日WH主管1.48,3.46,1.71

以下是我能够找到的问题: 请注意,我事先不知道日期范围。 这取决于用户要求的周数

select ccname, phname, listagg(weekenddate||','||ratio,'; ') 
within group(order by ccname, phname) ratio
from
(...leaving out this code...)
group by ccname, phname
但下面的结果还不够好:我可以使用'listag'还是应该研究'pivot'

CCNAME-PHNAME比率 苹果生产线1天L&I工作时间2015年2月8日,.45;2015年2月15日,.42;2015年2月22日,.43 苹果生产线1日分拣机2015年2月8日,6.85;2015年2月15日,6.09;2015年2月22日,6.01 苹果生产线1天托盘填充,2015年2月8日,12.93;2015年2月15日,11.9;2015年2月22日,12.09 苹果生产线1-天WH通用劳动08-2月15日,5.6;2015年2月15日,5.42;2015年2月22日,4.9 苹果生产线1日WH主管2015年2月8日,1.48;2015年2月15日,3.46;2015年2月22日,1.71

如果您不知道您将拥有多少列,那么您唯一可以使用的方法就是listag.OIC,谢谢。我很可能会使用OPENQUERY将我的Oracle查询带到SQL Server,在那里我可以创建临时表,而不必在Oracle中格式化。然而,我仍然需要在SQL Server中找到答案:-事实证明,我将创建一个Visual Studio交叉表Crystal报表来完成我想要做的事情。对于T SQL/SQL Server,这对我很有帮助:对于PLSQL,我使用的是LISTAGG,我认为您的问题与格式化比率有关