0

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
4

2 に答える 2

0

最初のクエリをラップし、次のように並べ替えてrating_id(評価されていない値が 0DESCの場合は注文する必要があります。評価されていない値が最高の場合は注文する必要があります) 、SQL サーバーのTOPASC関数を使用して最初のレコードを選択できます。

于 2013-09-13T07:16:26.763 に答える