2014-02-07 79 views
7

我正嘗試在一個表中轉動的一些數據,但我不能這樣做,因爲我沒有找到使用carchar列做到這一點。我有這個表:PIVOT與varchar數據類型

enter image description here

而我需要的是這樣的:

enter image description here

我需要使用 'ug_label' 行數據列。由於數據類型是VARCHAR,因此我無法在PIVOT中使用聚合函數。

我想我可能需要的是這樣的:

SELECT * 
FROM 
(SELECT [c_id] 
     ,[c_lname] as [Apellido] 
     ,[c_fname] as [Nombre] 
     ,[c_nick_name] as [documento]  
     ,[ut_text] 
     ,f.ug_label 
    FROM [pegasys].[dbo].[cardholder] c 
    inner join [pegasys].[dbo].[udftext] u on c.c_id = u.ut_cardholder_id 
    inner join [pegasys].[dbo].[udfgen] f on u.ut_udfgen_id = f.ug_id) AS S 
PIVOT 
(
    UT_TEXT 
    FOR 
    [UG_LABEL] 
    IN ([Torre], [Cuit], [Empresa], [Departamento]) 
) as s 

有人能幫助我嗎?。

謝謝。

回答

16

你仍然可以使用旋轉功能來獲得結果,但因爲你是一個聚集你varchar必須爲使用maxmin

SELECT * 
FROM 
(
    SELECT [c_id] 
     ,[c_lname] as [Apellido] 
     ,[c_fname] as [Nombre] 
     ,[c_nick_name] as [documento]  
     ,[ut_text] 
     ,f.ug_label 
    FROM [pegasys].[dbo].[cardholder] c 
    inner join [pegasys].[dbo].[udftext] u on c.c_id = u.ut_cardholder_id 
    inner join [pegasys].[dbo].[udfgen] f on u.ut_udfgen_id = f.ug_id 
) d 
PIVOT 
(
    max(ut_text) 
    FOR UG_LABEL IN ([Torre], [Cuit], [Empresa], [Departamento]) 
) p 
+0

感謝的人,是工作。簡單。 – NicoRiff

相關問題