sql - 没有 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 输出?