テーブル内のいくつかのデータをPIVOTしようとしていますが、carchar列を使用してそれを行う方法が見つからないため、それを行うことができません。私はこのテーブルを持っています:
そして私が必要なのはこれです:
'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
誰かが私を助けることができますか?.
ありがとう。
PIVOT関数を使用して結果を取得することはできますが、varchar
を集約しているため、max
またはmin
のいずれかを使用する必要があります。
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