【发布时间】:2013-09-13 06:58:18
【问题描述】:
我有一个 sql 查询来返回 IT 票及其满意度分数,但是由于我们的票务系统的工作方式,这有时会返回 2 行作为票证参考 - 1 行带有“未评级”评级,另一行具有真实评级。
我的问题是,有没有办法让查询只为每个票证参考返回一行,如果不存在另一个评级,则只返回“未评级”评级。即,当有 2 行具有相同的票证参考并且其中一个具有“优秀”评级和一个具有“未评级”评级时,它只返回具有“优秀”评级的行。应返回只有 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
【问题讨论】:
-
“未评级”的 tt.[rating_id] 是什么?
-
标记您的评论,“查询以仅返回每个票证参考的单行,如果不存在另一个评级,则仅返回“未评级”评级”但在您的表中是否存在多行与其他评级(即除“未评级”评级外)存在相同的票证。
-
我认为可以有 2 行 MAX:一个标记为 Not rating,最终,第二个标记为实际速率
-
@trippino 没有评级 ID,因为在另一个表中它只是空白,我需要它不是空白,因此是“未评级”条目。
-
好的,如果你使用我的解决方案,你应该通过 DESC 订购
标签: sql sql-server tsql