だから私は一度にいくつかのことをやろうとしていますが、それらをまとめる方法がわかりません。
私の最初のステップは、複数のセルを取得し、ID に基づいてそれらを 1 つの行に結合することでした。
USE MAIN;
Select ACT.ID AS Activity
,STUFF (( Select ',' + LE.Name AS [text()]
FROM ActivityDemographicEthnicity ADE
LEFT OUTER JOIN LookupEthnicity LE
ON LE.ID = ADE.ethinicityId
WHERE ACT.ID = ADE.ActivityID
FOR XML PATH ('')),1,1,'')
AS Ethnicity
FROM Activity ACT
これはうまく機能し、次のようなものが生成されます。
ID Ethnicity
------------------------------------------
123 African, African American, Caucasian
125 Caucasian
128 NULL
しかし、私はこのようなものが欲しいです:
ID Ethnicity
----------------------------------------
123 African American, Caucasian
125 Caucasian
128 General Market
case ステートメントを介して新しい値を定義した場所:
USE Main;
(Select CASE
When LE.Name is null THEN 'General Market'
When LE.Name = 'African' THEN 'African American'
When LE.Name = 'American Indian/Native American' Then 'American Indian'
WHEN LE.NAME = 'Cambodian' Then 'Asian'
When LE.Name = 'Chinese' Then 'Asian'
When LE.Name = 'Filipino' Then 'Asian'
When LE.Name = 'Hmong' Then 'Asian'
WHEN LE.NAME = 'Japanese' THEN 'Asian'
WHEN LE.Name = 'Korean' Then 'Asian'
WHEN LE.Name = 'Laotian' Then 'Asian'
WHEN LE.Name = 'Vietnamese' Then 'Asian'
WHEN LE.Name = 'Armenian' Then 'Other'
WHEN LE.Name = 'Russian' Then 'Other'
WHEN LE.Name = 'Ukranian' Then 'Other'
WHEN LE.Name = 'Other (specify)' Then 'Other'
Else LE.Name
End 'Ethnicity'
From ActivityDemographicEthnicity ADE
LEFT JOIN LookupEthnicity LE
ON LE.ID = ADE.ID)`
両方のクエリは個別に機能しますが、それらを 1 つのクエリに結合するにはどうすればよいですか?