0
我正在使用AdventureWorks2014数据库并使用以下查询。根据数据中的年份拆分日期列
select
SUM(Purchasing.PurchaseOrderDetail.OrderQty) as 'Total Quantity',
SUM(Purchasing.PurchaseOrderDetail.LineTotal) as 'Total Amount',
Purchasing.PurchaseOrderHeader.VendorID
from Purchasing.PurchaseOrderDetail
inner join Purchasing.PurchaseOrderHeader
on Purchasing.PurchaseOrderDetail.PurchaseOrderID = Purchasing.PurchaseOrderHeader.PurchaseOrderID
group by Purchasing.PurchaseOrderHeader.VendorID, DATEPART(year,Purchasing.PurchaseOrderHeader.OrderDate)
order by Purchasing.PurchaseOrderHeader.VendorID
这给了我以下输出。
|------------------------------------|
|Total Quantity|Total Amount|VendorID|
|15 |694.1655 | 1492|
|288 |12370.239 | 1492|
|45 |1931.7375 | 1492|
|180 |7682.6295 | 1492|
|9350 |150404.1 | 1494|
|1650 |26541.9 | 1494|
|550 |8847.3 | 1494|
|16500 |265419 | 1494|
|------------------------------------|
据我所知,这是每年的数据,即价值2011,2012,2013和2014年,每个供应商。这就是每个供应商重复4次的原因。
我需要将这些年份中的每一年作为输出中的单独列,如下所示。
|--------------------------------------------------------------------------------|
|Total Quantity|Total Amount|VendorID|2011Amount|2012Amount|2013Amount|2014Amount|
|--------------------------------------------------------------------------------|
有什么想法?
使用主轴..你可以在网上找到更多关于它的信息 –
@ShakeerMirza谢谢你的提示,我会给它一个镜头...... –
@ShakeerMirza,因为你正在聚合超过1列我实际上会推荐条件聚合。当超过1个色谱柱时,PIVOT可能会更困难。尽管在这种情况下在表中使用窗口函数来创建不同的值,但是使得PIVOT变得轻松一些。 – Matt