首页 > 解决方案 > 没有 XML Oracle 的动态透视

问题描述

我有下表: 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 输出?

标签: sqloracleoracle11g

解决方案


推荐阅读