2014-09-19 123 views
0

我需要將表格從標準表格轉換爲更加概括的版本。行應基於2013年或2014年。我正在考慮使用一個關鍵點,但我不相信它的必要性。下面的代碼失敗,因爲我剛剛創建的列的功能組是有辦法解決這個問題嗎?不使用透視功能的SQL數據透視表

CODE

CREATE VIEW -- select * from 
    [03_rdm].[AR_LedgerByInvoice] 
as 
select [EY_Business_Unit] 
     ,(Case when [AR_Fiscal Year] = 2014 then 'AR_Outstanding_Amount (CY)' else 'AR_Outstanding_Amount (PY)' end) [Aging_Bucket] 
     , [AR_1-30 Days Past Due] 
     , [AR_31-60 Days Past Due] 
     , [AR_61-90 Days Past Due] 
FROM [02_cdm].[0040_AR_InvoiceSummary_2013_2014] 
GROUP BY [Aging_Bucket] 

最終的結果應該是:

所需的輸出

Business Unit Aged Bucket    [AR_1-30 Days] [AR_31-60 Days] [AR_61-90 Days] Total 
100 `   AR_Outstanding_Amount (CY) x    xx    xxx    xxxx 
100    AR_Outstanding_Amount (PY) x    xx    xxx    xxxx 
+0

很不清楚。您似乎想要分組,但您並未彙總任何內容 - 您需要分組的內容是什麼?請考慮發佈您希望創建視圖的表格示例以及基於該示例*的所需輸出*。 – 2014-09-19 15:45:06

回答

3

不能按同一 '級別' 創建一個別名,但你應該能夠以相同的表情分組,但也許你只是想按年分組? (如果是的話,也許GROUP BY [AR_Fiscal Year]是你真正想要的):

CREATE VIEW -- select * from 
    [03_rdm].[AR_LedgerByInvoice] 
as 
select [EY_Business_Unit] 
     ,(Case when [AR_Fiscal Year] = 2014 then 'AR_Outstanding_Amount (CY)' else 'AR_Outstanding_Amount (PY)' end) [Aging_Bucket] 
     , [AR_1-30 Days Past Due] 
     , [AR_31-60 Days Past Due] 
     , [AR_61-90 Days Past Due] 
FROM [02_cdm].[0040_AR_InvoiceSummary_2013_2014] 
GROUP BY 
    [EY_Business_Unit], 
    CASE WHEN [AR_Fiscal Year] = 2014 THEN 'AR_Outstanding_Amount (CY)' ELSE 'AR_Outstanding_Amount (PY)' END 

由於您沒有提供任何樣本數據或表我無法測試它,但它應該工作。

或者,也許你想要聚合行:

select [EY_Business_Unit] 
     ,(Case when [AR_Fiscal Year] = 2014 then 'AR_Outstanding_Amount (CY)' else 'AR_Outstanding_Amount (PY)' end) [Aging_Bucket] 
     , SUM([AR_1-30 Days Past Due]) 
     , SUM([AR_31-60 Days Past Due]) 
     , SUM([AR_61-90 Days Past Due]) 
FROM [0040_AR_InvoiceSummary_2013_2014] 
GROUP BY 
[EY_Business_Unit] 
     ,(Case when [AR_Fiscal Year] = 2014 then 'AR_Outstanding_Amount (CY)' else 'AR_Outstanding_Amount (PY)' end) 
order by [EY_Business_Unit]; 
+0

不幸的是,我得到的錯誤是,業務單位不是不包含在聚合函數或GROUP BY子句中 – Calgar99 2014-09-19 15:29:48

+0

哦,對,在案例表達式之前添加它。 – jpw 2014-09-19 15:30:26

+0

它是一個永無止境的循環添加所有的列,否定組功能 – Calgar99 2014-09-19 15:31:47