【发布时间】:2021-07-27 01:21:34
【问题描述】:
第一次发帖。我对数据透视表非常陌生,并且已经查找了有关如何创建它们的几个答案,但我似乎无法让我的工作。数据透视表是正确的方法吗?
我正在尝试做的是获取所有列并将它们设为行,然后将行变为列。基本上把桌子转90度。见图片。
谢谢
Image of Base query results and results I'm trying to get
基本查询
SELECT dbo.EstimateDetails.EstimateDetailID,
dbo.EstimateDetails.QtyOrdered,
dbo.EstimateDetails.NetPrice,
dbo.EstimateDetails.ExtendedPrice,
dbo.EstimateDetails.EstimateID,
dbo.UserDefined_Custom.UserDefined1,
dbo.UserDefined_Custom.UserDefined2,
dbo.EstimateDetails.OrdUOMID,
dbo.Estimate.EstimateNo,
dbo.EstimateDetails.[LineNo] AS Line
FROM dbo.EstimateDetails
INNER JOIN dbo.Estimate
ON dbo.EstimateDetails.EstimateID = dbo.Estimate.EstimateID
LEFT OUTER JOIN dbo.UserDefined_Custom
ON dbo.EstimateDetails.ItemSpecID = dbo.UserDefined_Custom.ItemSpecID
where dbo.EstimateDetails.EstimateID = 141865
我现在所处的位置没有运气。
Select
Pvt.[1], Pvt.[2], Pvt.[3], Pvt.[4],Pvt.[5],Pvt.[6]
from
(SELECT dbo.EstimateDetails.EstimateDetailID,
dbo.EstimateDetails.QtyOrdered,
dbo.EstimateDetails.NetPrice,
dbo.EstimateDetails.ExtendedPrice,
dbo.EstimateDetails.EstimateID,
dbo.UserDefined_Custom.UserDefined1,
dbo.UserDefined_Custom.UserDefined2,
dbo.EstimateDetails.OrdUOMID,
dbo.Estimate.EstimateNo,
dbo.EstimateDetails.[LineNo] AS Line
FROM dbo.EstimateDetails
INNER JOIN dbo.Estimate
ON dbo.EstimateDetails.EstimateID = dbo.Estimate.EstimateID
LEFT OUTER JOIN dbo.UserDefined_Custom
ON dbo.EstimateDetails.ItemSpecID = dbo.UserDefined_Custom.ItemSpecID
where dbo.EstimateDetails.EstimateID = 141865
) AS Src
PIVOT
(
Max(EstimateDetailID)
for Line in ([1], [2], [3], [4],[5],[6])
) AS Pvt
【问题讨论】:
-
您使用的是哪个 dbms? (也许是 MS SQL Server?)
-
是的,我使用的是 MS SQL Server。
标签: sql sql-server pivot pivot-table