-4
Q
SQL樞軸2列
A
回答
0
這是一種適用於任何不依賴專有PIVOT()
函數的數據庫(包括SQL Server)的方法。在這樣的例子中,這樣做有點奇怪,在52周的時間裏,(並且,實話告訴你,105個結果列並不是真正的人類閱讀報告的最佳輸出)。 話雖如此,在這個例子中,我做了一年的四分之一而不是幾周,你只需要重複表達52次而不是4次。 實際上,您可以使用perl或Visual Basic或任何您喜歡的來生成語句。 這裏所說:
-- the input table, don't use in real query ...
WITH
input(id,quarter,orders,cost) AS (
SELECT 1,201601,200,1000
UNION ALL SELECT 1,201602,300,1500
UNION ALL SELECT 1,201603,330,1800
UNION ALL SELECT 1,201604,500,2500
)
-- end of input -
SELECT
id
, SUM(CASE quarter WHEN 201601 THEN orders END) AS "orders_201601"
, SUM(CASE quarter WHEN 201602 THEN orders END) AS "orders_201602"
, SUM(CASE quarter WHEN 201603 THEN orders END) AS "orders_201603"
, SUM(CASE quarter WHEN 201604 THEN orders END) AS "orders_201604"
, SUM(CASE quarter WHEN 201601 THEN cost END) AS "cost_201601"
, SUM(CASE quarter WHEN 201602 THEN cost END) AS "cost_201602"
, SUM(CASE quarter WHEN 201603 THEN cost END) AS "cost_201603"
, SUM(CASE quarter WHEN 201604 THEN cost END) AS "cost_201604"
FROM input
GROUP BY id;
id|orders_201601|orders_201602|orders_201603|orders_201604|cost_201601|cost_201602|cost_201603|cost_201604
1| 200| 300| 330| 500| 1,000| 1,500| 1,800| 2,500
相關問題
- 1. SQL:樞軸上多列
- 2. 在SQL Server樞軸列
- 3. SQL樞軸只有兩列
- 4. SQL樞軸
- 5. SQL樞軸
- 6. SQL Server:樞軸
- 7. SQL - 樞軸/ Unpivot?
- 8. T-SQL樞軸有多個列基礎樞軸
- 9. SQL查詢中樞軸列中的樞軸
- 10. 動態SQL樞軸由列的SQL Server
- 11. 樞軸兩列
- 12. SQL樞軸應用
- 13. T-SQL - 樞軸周
- 14. 樞軸SQL語句
- 15. 使用SQL樞軸
- 16. 樞軸SQL查詢
- 17. SQL樞軸MIN(COUNT(
- 18. SQL樞軸問題
- 19. MS SQL:樞軸表順序列
- 20. 樞軸排在SQL Server列2014
- 21. SQL Server樞軸行進入列
- 22. 樞軸行分列動態 - SQL
- 23. 樞軸動態列
- 24. SQL Server:與分組樞軸
- 25. 樞軸sql與總數
- 26. 在sql server中樞軸
- 27. 總樞軸在SQL Server
- 28. T-SQL - 樞軸錯誤
- 29. 樞軸兩柱對於SQL
- 30. 樞軸Sql服務器
[轉換行,以使用SQL Server「支點」列(可能的複製http://stackoverflow.com/questions/15931607/convert-rows-to-columns-using-pivot -in-sql-server) – Ben
你在用什麼數據庫? – Taryn
我正在使用SQL Server 12 – user2827224