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. SQL交叉表,數據透視表
- 2. SQL數據透視表或交叉表?
- 3. 碧玉報告交叉表條件
- 4. 生成交叉表報告im oracle?
- 5. 交叉表/透視查詢上nvarchar列
- 6. PostgreSQL的交叉表/透視問題
- 7. 在晶體報告交叉表報告中添加序列號
- 8. 如何創建如下報告的交叉表報表?
- 9. 訪問報告:有條件的格式化的數據透視表或報告
- 10. 透視表(交叉表報表)中的Java EE Web應用程序
- 11. 從表格中獲取值(不透明/交叉應用)
- 12. 水晶報表交叉表
- 13. 交叉分析報表 - MYSQL
- 14. 如何交叉報表
- 15. 從動態交叉表查詢和vba訪問報告「手動」生成報告
- 16. 格式交叉表
- 17. rails db中立數據透視表或交叉表
- 18. 總結散列與一個交叉表(也稱爲「透視表」)
- 19. 使用交叉表和數據透視表函數
- 20. HTSQL中的數據透視表或交叉表查詢
- 21. SQLite數據透視表和交叉表查詢
- 22. SQL Server Management Studio 2012數據透視表/交叉表查詢
- 23. 水晶報表交叉標籤,但不與「交叉表」工具
- 24. 如何獲得表格中的交叉點?
- 25. 交叉引用2個表格並獲得結果
- 26. 水晶透視數據報告8節
- 27. 設計報告透視 - eclipse rcp
- 28. PHP捲曲的Facebook透視報告URL
- 29. 如何在EPPlus中將數據透視表報告佈局設置爲表格?
- 30. 在交叉表報告中排序月份名稱
負載的感謝,它的工作沒有缺陷。一旦時鐘達到兩分鐘屏障就會接受它:) – 2012-04-17 10:50:58
沒問題。很高興幫助:P ..我給你添加了一個獎勵例子:P ..請看看。 – Arion 2012-04-17 10:54:29
這就是真棒!對不起請求更多.. :)謝謝很多陛下.. – 2012-04-17 11:14:43