没有XML Oracle的Dynamic Pivot

时间:2018-10-15 19:49:31

标签: sql oracle oracle11g

我有下表: Product Price($) Qty SellingDate Book 10 10 1/10/2018 Book 15 20 1/10/2018 Pens 1 100 1/10.2018 Pens 2 50 1/10/2018 Misc 150 250 1/10/2018

我有不同产品的销售价格和数量。我想执行一个枢轴操作以获取以下格式的输出: Book Pens Misc (Price*Qty) (Price*Qty) (Price*Qty)

我一天可以销售更多或更少数量/类型的产品。我将产品维护在产品主管中。因此,我想实现一个动态枢纽。

我尝试了如下所示的数据透视查询:

select * from 
(select product, (price*qty ) amnt
 from Sales_data where sellingdate = '1/10/2018')
PIVOT (MIN(amnt) FOR product IN (select distinct product from product_master);

执行上述查询时,出现“缺少表达式”错误。

从我的阅读中,我了解到可以使用XML执行动态数据透视,然后可以从xml输出中提取输出。

但是,要以可读的格式提取结果,我仍然需要知道返回的列数。

有什么方法可以实现动态数据透视,而不必生成XML输出吗?

0 个答案:

没有答案