2
A
回答
1
事情是這樣的:
測試數據
CREATE TABLE #tbl(date_a DATE,date_e DATE, vals FLOAT)
INSERT INTO #tbl
VALUES
('2/29/2012','1/1/2013',28.47),
('2/29/2012','2/1/2013',27.42),
('2/29/2012','3/1/2013',24.36),
('3/1/2012','1/1/2013',28.5),
('3/1/2012','2/1/2013',27.35),
('3/1/2012','3/1/2013',24.39),
('3/6/2012','1/1/2013',27.75),
('3/6/2012','2/1/2013',26.63),
('3/6/2012','3/1/2013',23.66)
查詢
SELECT
*
FROM
(
SELECT
tbl.date_a,
tbl.date_e,
vals
FROM
#tbl AS tbl
) AS SourceTable
PIVOT
(
SUM(vals)
FOR date_e IN ([1/1/2013],[2/1/2013],[3/1/2013])
) AS pvt
DROP TABLE #tbl
編輯
如果你不知道有多少列,那麼你需要做一個動態的pivot
。就像這樣:
獨特的列
DECLARE @cols VARCHAR(MAX)
;WITH CTE
AS
(
SELECT
ROW_NUMBER() OVER(PARTITION BY date_e ORDER BY date_e) AS RowNbr,
tbl.*
FROM
#tbl AS tbl
)
SELECT @cols=STUFF
(
(
SELECT
',' +QUOTENAME(date_e)
FROM
CTE
WHERE
CTE.RowNbr=1
FOR XML PATH('')
)
,1,1,'')
動態樞
DECLARE @query NVARCHAR(4000)=
N'SELECT
*
FROM
(
SELECT
tbl.date_a,
tbl.date_e,
vals
FROM
#tbl AS tbl
) AS SourceTable
PIVOT
(
SUM(vals)
FOR date_e IN ('[email protected]+')
) AS pvt'
EXECUTE(@query)
相關問題
- 1. PostgreSQL的交叉表/透視問題
- 2. 交叉表/透視查詢上nvarchar列
- 3. 在晶體報告交叉表報告中添加序列號
- 4. 如何創建如下報告的交叉表報表?
- 5. 透視表(交叉表報表)中的Java EE Web應用程序
- 6. 水晶報表交叉表
- 7. 交叉檢查SQL服務器報告
- 8. 如何交叉報表
- 9. 從動態交叉表查詢和vba訪問報告「手動」生成報告
- 10. 格式交叉表
- 11. rails db中立數據透視表或交叉表
- 12. SQLite數據透視表和交叉表查詢
- 13. 如何獲得表格中的交叉點?
- 14. 如何在EPPlus中將數據透視表報告佈局設置爲表格?
- 15. 設計報告透視 - eclipse rcp
- 16. 水晶透視數據報告8節
- 17. 用於生成交叉表報告的庫?
- 18. 賈斯珀報告交叉表添加參數
- 19. 如何爲交叉表報告編寫mysql?
- 20. 將共享變量從主報告傳遞到交叉表?
- 21. 使用交叉表創建每日報告
- 22. 保持相同數量的列在交叉表報告
- 23. Postgres的 - 與多個值列數據透視表/交叉
- 24. 水晶報表交叉突出
- 25. closedxml數據透視表報告過濾器默認值
- 26. 如何獲得基礎數據的主報告報表
- 27. 如何獲得高分提交/報告給Game Center排行榜?
- 28. iOS PDF表格與報告
- 29. Oracle PL/SQL中的交叉表/數據透視表 - iBatis - Extjs和JasperReport
- 30. C#報告控制(交互式報告)
負載的感謝,它的工作沒有缺陷。一旦時鐘達到兩分鐘屏障就會接受它:) – 2012-04-17 10:50:58
沒問題。很高興幫助:P ..我給你添加了一個獎勵例子:P ..請看看。 – Arion 2012-04-17 10:54:29
這就是真棒!對不起請求更多.. :)謝謝很多陛下.. – 2012-04-17 11:14:43