0
A
回答
1
這有點凌亂,但它在這裏。所有的
首先,我使用的秩()函數來知道的位置(1,2或3)ErrorField的。所有這一切,我使用該數字爲樞軸。 你需要兩個樞軸和它們之間的連接。
WITH AuxTable (Data_Error_Key, ErrorField, ErrorValue, NumeroError)
AS
(
SELECT Data_Error_Key, ErrorField, ErrorValue, RANK() OVER (PARTITION BY Data_Error_Key ORDER BY Data_Error_Key, ErrorField)
FROM dbo.TempTable
)
SELECT TablaErrorField.Data_Error_Key, ErrorField1, ErrorValue1,ErrorField2,ErrorValue2, ErrorField3,
ErrorValue3
FROM
(
SELECT Data_Error_Key, [1] as ErrorField1, [2] as ErrorField2, [3] as ErrorField3
FROM (
SELECT Data_Error_Key,NumeroError, ErrorField
FROM AuxTable) P
PIVOT
(
MAX (ErrorField)
FOR NumeroError IN ([1], [2], [3])
) AS pvt) As TablaErrorField
INNER JOIN
(
SELECT Data_Error_Key, [1] as ErrorValue1, [2] as ErrorValue2, [3] as ErrorValue3
FROM (
SELECT Data_Error_Key,NumeroError, ErrorValue
FROM AuxTable) P
PIVOT
(
MAX (ErrorValue)
FOR NumeroError IN ([1], [2], [3])
) AS pvt) as TablaErrorValue
ON TablaErrorField.Data_Error_Key= TablaErrorValue.Data_Error_Key
這一切都假設您只需要3對ErrorField/ErrorValue。否則,你應該看看我的回答this的問題。
1
我不知道,如果你能做到這一點與SQL Server PIVOT功能。該函數總是假設並需要某種數值的集合函數(COUNT,AVG) - 您不能僅將行轉換爲列。
在你的情況,如果你事先知道你的錯誤的字段,你可以做這樣的事情:
SELECT
ErrorKey,
[Field1] AS Field1, [Field2] AS Field2, [Field10] AS Field10,
[Field11] AS Field11, [Field13] as Field13, [Field14] as Field14,
[Field15] as Field15, [Field21] as field21
FROM
(SELECT ErrorKey, ErrorField, ErrorValue
FROM Errors) e
PIVOT
(
COUNT (ErrorValue)
FOR ErrorField IN
([Field1], [Field2], [Field10], [Field11], [Field13],
[Field14], [Field15], [Field21])
) AS pvt
ORDER BY pvt.ErrorKey
這將產生一個輸出這樣的事情:
ErrorKey Field1 Field2 Field10 Field11 Field13 Field14 Field15 field21
1 1 1 1 0 0 0 0 0
2 0 0 0 1 1 1 0 0
3 0 0 0 0 0 0 1 1
這將使你爲每個錯誤鍵在特定字段中的錯誤計數。
相關問題
- 1. 在SQL Server 2008 R2中使用PIVOT表
- 2. 在SQL Server中使用PIVOT 2008
- 3. SQL Server - PIVOT
- 4. SQL SERVER PIVOT 2014
- 5. 的SQL Server PIVOT
- 6. SQL Server PIVOT
- 7. 使用SQL PIVOT行列... SQL Server 2008 R2
- 8. T-SQL pivot在SQL Server中的子句
- 9. SQL Server 2008中的PIVOT/UNPIVOT
- 10. SQL Server中的PIVOt函數
- 11. PIVOT結果在SQL Server 2008
- 12. SQL Server PIVOT功能
- 13. SQL Server PIVOT也許?
- 14. SQL Server PIVOT函數
- 15. SQL Server PIVOT問題
- 16. SQL Server PIVOT with dateadd()
- 17. SQL Server Pivot或Unpivot
- 18. SQL Server - PIVOT分組
- 19. 在sql中使用PIVOT
- 20. 試圖找出如何在SQL Server中使用PIVOT
- 21. 在新表中使用pivot/unpivot的SQL Server
- 22. 在SQL Server中使用'Pivot'將行轉換爲列
- 23. 如何在SQL Server中一起使用PIVOT和JOIN?
- 24. 如何在SQL Server中使用Pivot獲取最新記錄?
- 25. 的SQL Server PIVOT列數據
- 26. 的SQL Server PIVOT幫助
- 27. SQL-Server Unpivot/Pivot示例
- 28. SQL Server Pivot插入NULL值
- 29. SQL Server Dynamic Pivot故障
- 30. T-SQL使用PIVOT