-3

私は以下のようなテーブルを持っています

CustomFieldValueId  CustomFieldId   ProjectId   CustomFieldName CustomFieldValue
35                  69              1           User Name       kaliya
36                  72              1           City            Bangalore
37                  74              1           Email           mm@gmail.com
38                  69              1           User Name       mvkperumal
39                  72              1           City            Chennai
40                  74              1           Email           mvkperumal@gmail.com
41                  69              1           User Name       Yohesh
42                  72              1           City            Delhi
43                  74              1           Email   

以下のような出力が必要です

User Name   City       Email
kaliya      Bangalore  mm@gmail.com
mvkperumal  Chennai    mverumal@gmail.com
Yohesh      Delhi   

CustomFieldValueIdに基づいて値を取得し、ProjectIdをグループ化しているので、これを支援してください。

4

1 に答える 1

1

でこれを行うことができますが、それぞれをなどPIVOTと関連付ける何らかの方法が必要です。それを理解できる場合は、次のようなものを使用できます。User NameEmail

select [User Name], [City], [email]
from
(
  select customfieldname, customfieldvalue,
    row_number() over(partition by ProjectId, CustomFieldId 
                      order by CustomFieldValueId) rn
  from yourtable
) src
pivot
( 
  max(customfieldvalue)
  for customfieldname in ([User Name], [City], [email])
) piv

デモで SQL Fiddle を参照してください

各値を関連付ける方法が提供されていないため、row_number()各レコードに a を適用しました。

于 2012-11-02T18:25:36.260 に答える