select first name
,last name
,employeeID
,CASE
WHEN CONVERT(xml,detail).value('count(//education/item)','nvarchar(50)')=0 AND
CONVERT(xml,detail).value('(//preventive/itemValue/text())[1]','nvarchar(50)') LIKE '%Employee refuses to participate %' THEN
'AAA-1'
WHEN CONVERT(xml,detail).value('count(//education/item)','nvarchar(50)') =0 AND
CONVERT(xml,detail).value('count(//preventive/itemValue)','nvarchar(50)')=0 THEN
'AAA-2'
ELSE
'AAA-3'
END val
,Start Date
,End Date
FROM (HAS MULTIPLE JOINS HERE & CONDITION )
GROUP BY first name
,last name
,employeeID
,CASE
WHEN CONVERT(xml,detail).value('count(//education/item)','nvarchar(50)')=0 AND
CONVERT(xml,detail).value('(//preventive/itemValue/text())[1]','nvarchar(50)') LIKE '%Employee refuses to participate %' THEN
'AAA-1'
WHEN CONVERT(xml,detail).value('count(//education/item)','nvarchar(50)') =0 AND
CONVERT(xml,detail).value('count(//preventive/itemValue)','nvarchar(50)')=0 THEN
'AAA-2'
ELSE
'AAA-3'
END
,Start Date
,End Date
私のコードは完全に正常に実行されていますが、group by句を記述すると、XMLデータ型をグループ化できないというエラーがスローされます。ユーザー定義関数で実行できることはわかっています。誰かがこのタスクをどのように達成できるか教えてください。コード内の句でグループ化する必要があります。SQLServer2005/2008を使用しています。