我使用Oracle 11g, PLSQL版本10.0.1集团通过数值
我取了Product_Status每日报告。一旦原始数据到来。我根据原始数据制作数据透视表,并按MS Excel中按日期列的产品销售进行分组。我想在查询本身做同样的事情。
产品销售日期格式:2014年3月12日上午7点57分27秒
Tbl_Name:tv_productdetails
普通的SQL查询
下面是详细的产品样本查询:
Select product.id, Product_Sales_Date
from smspadm.tv_productdetails
where
Product_Sales_Date >= TO_DATE('01-april-2014','DD-MON-YYYY')
and Product_Sales_Date < TO_DATE('04-april-2014','DD-MON-YYYY')
and product_status in('active')
预期产出将为:
product.id 1-Apr 2-Apr 3-Apr 4-Apr Grandtotal
A011 89 89 89 89 356
B055 85 85 85 85 340
C055 78 78 78 78 312
D011 98 98 98 98 392
E897 45 45 45 45 180
我只需要两列Product.id,Product_Sales_Date按销售日期对数据进行分组。 下面是样本数据:
Product.id Product_Sales_Date
A001 4/12/2014 3:38:00 PM
A002 4/13/2014 3:38:00 PM
A003 4/14/2014 11:34:34 AM
A004 4/15/2014 12:56:52 PM
A001 4/16/2014 10:54:58 AM
A002 4/17/2014 9:01:19 AM
A003 4/18/2014 12:56:52 PM
A004 4/19/2014 3:38:00 PM
A005 4/20/2014 1:07:49 PM
A006 4/21/2014 3:02:14 PM
A004 4/22/2014 10:55:54 AM
A005 4/23/2014 3:16:28 PM
A006 4/24/2014 8:46:48 AM
A007 4/25/2014 3:53:32 PM
A008 4/26/2014 7:57:27 AM
根据您所描述的,您可以使用PIVOT。请提供一些示例数据,以便我们可以处理它。 – Avrajit
更新示例数据.. – user3497327
您需要使用Dynamic PIVOT。 – AK47