4
SQL返回从表中的结果如下:CowTracking使行值成列的值 - SQL PIVOT
ID cow_id barn_id
-- ------ -------
19 5 3
20 5 2
21 5 9
22 5 1
我试图得到一个PIVOT以下结果在SQL
cow_id barn1 barn2 barn3 barn4
------ ----- ----- ----- -----
5 3 2 9 1
这是我迄今为止的代码。
SELECT *
FROM
(
SELECT TOP 4 *
FROM CowTracking
WHERE cow_id = 5
) AS DataTable
PIVOT
(
MIN(barn_id) **IDK what function to use and which column to use it on**
FOR ID ??<---**NOT SURE**
IN
(
[barn1], [barn2], [barn3], [barn4]
)
) AS PivotTable
ERRORS: Error converting data type nvarchar to int
The incorrect value "barn1" is supplied in the PIVOT operator
注意:barn_id是一个varchar。它不可能改变数据类型。
我不想加/乘/聚合或其他。我只是试图将该行移动到列
我该如何去做这件事? 这是正确的思维过程吗?
我甚至需要使用PIVOT吗?
你的第一个建议是当场上。起初我很担心,因为ID会一直改变。但后来我宣布了一个新的专栏,并设置了它,以便它始终是1 - 4。然后我能够完成它。感谢队友,非常感谢。带我一点点,让我的头绕着这个概念 – sQuijeW 2012-02-02 20:34:16
@sQuijeW - 不客气。如果这回答你的问题,你可以将它标记为*([接受答案如何工作?](http://meta.stackexchange.com/questions/5234))* – 2012-02-02 20:49:31