1
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データ型をグループ化できないというエラーが発生します。私は、ユーザーが定義した関数でそれを行うことができることを知っています。誰でもこの仕事がどのように達成されるのか教えてください。私は自分のコードでgroup by節を持つ必要があります。私はSQL Server 2005/2008を使用しています。XMLデータでグループ化するにはどうすればいいですか?