【发布时间】:2019-02-12 07:58:22
【问题描述】:
这个查询差不多了。我现在唯一的问题是结果没有旋转。相反,它们保留在名为 Value 的列中。
SELECT * FROM (
SELECT
jD.AccountID,
SUM(jD.Amount) AS [Total Dollars],
COA.Name as COAName,
SUM(jD.Qty) AS QTY,
CONVERT(date, GETDATE()) AS Date,
AttributeDefinitions.Name,
AttributeValues.Value
FROM
AttributeDefinitions INNER JOIN
AttributeCategories ON AttributeDefinitions.AttributeCategoryID = AttributeCategories.AttributeCategoryID INNER JOIN
AttributeValues ON AttributeDefinitions.AttributeDefinitionID = AttributeValues.AttributeDefinitionID RIGHT OUTER JOIN
JnlDetails AS jD WITH (NOLOCK) INNER JOIN
COA ON jD.AccountID = COA.AccountID ON AttributeValues.AttributeValueGroupID = COA.AttributeValueGroupID
WHERE
(jD.CreateDate >= GETDATE() - 2) AND
(jD.CreateDate < GETDATE() + 1)
GROUP BY
jD.AccountID,
COA.Name,
jD.Qty,
jD.CreateDate,
AttributeDefinitions.Name,
AttributeValues.Value
) as T1
PIVOT
(
MAX([Name]) FOR Name IN ([ACCT_NO], [DEPT_ID], [GLENTRY_CLASSID],[GLENTRY_PROJECTID]
,[GLDIMBENEFITING_DEPARTMENT],[GLDIMFUND],[LOCATION_ID])
) PT
【问题讨论】:
-
这似乎是一个简单的
PIVOT,你试过写吗?应该像PIVOT (MAX([Value]) FOR Name IN ([1 Account Code], [2 Project Code], etc) AS P -
我试过写它,但它不适合我。我遇到的最大问题是我混合了正在旋转和不旋转的列,而且行数也不同。但我正在测试一些建议
标签: sql sql-server pivot