IT チケットとその満足度スコアを返す SQL クエリがありますが、チケット発行システムの仕組みにより、チケット参照用に 2 つの行が返されることがあります。
私の質問は、各チケット参照に対して単一の行のみを返し、別の評価が存在しない場合にのみ「評価なし」評価を返すようにクエリを取得する方法があるかどうかです。つまり、同じチケット参照を持つ 2 つの行があり、一方の評価が「Excellent」で、もう一方の評価が「Not Rated」の場合、評価が「Excellent」の行のみが返されます。「未評価」の行が 1 つしかないものはすべて返されます。
これまでのクエリは次のようになります-
SELECT DISTINCT
t.Rating_Date,
t.id AS 'Ticket Reference',
[Rating]
= CASE
When tt.[rating_id] = 20 then 'Poor'
When tt.[rating_id] = 15 then 'Average'
When tt.[rating_id] = 17 then 'Good'
When tt.[rating_id] = 6 then 'Excellent'
else 'Not Rated'
END,
[subject],
[priority],
[status],
uu.name,
[assignee_id],
[Location],
[technology]
FROM
[DB1].[dbo].[table1] t
INNER JOIN [DB1].[dbo].[table2] tt
ON t.id=tt.ticket_id
LEFT JOIN [DB1].[dbo].[table3] uu
ON t.assignee_id=uu.id
WHERE
t.rating_date > '2013-07-01'
AND status = 'closed'
AND location = 'UK'
AND technology <> 'Not Known'
AND group_id = '5678912'
ORDER BY
t-rating_date