2016-03-01 131 views
0

我在教自己的SQL,遇到了這個服務級別的問題,並被難住。我希望得到一些幫助。SQL服務級別查詢

我給了一個有三個字段的表。

TicketNumber (Number) ex. 53055 
CreatedAt (timestamp field) ex 2015-09-16 12:47 
Sender (User or Agent) ex User 

目標是計算服務級別完成。門票是由用戶創建並給出一個號碼,並且必須在6小時內給出座席的回覆。

使用公式:

n_agents_reply_back_to_user_within_6hrs/n_contacts_from_user 

現在我明白了,這個公式中的分母是根本

Select COUNT(Sender) 
From Service_Table 
Where Sender Like 'User' 

分子是給了我很多問題,我希望有人能走路我通過它。我知道我需要識別具有相同票號的行,確定用戶何時發送票證,並確定代理人何時響應並做出改變,如果它是< = 6,則計算它,噸。

作爲一個初學者,我在處理如何編寫這樣的查詢方面遇到了一些麻煩。任何幫助表示讚賞。謝謝

+0

您可以爲每個用戶和代理編寫兩個單獨的查詢,然後根據票證編號加入。然後用一個外部查詢來應用公式。你在使用plsql嗎?或Mysql – Avi

+0

我正在使用mysql,但我很困惑如何編寫一個查詢,檢查票號是否相同,然後如果第一個用戶是一個代理,最後做一個檢查,如果之間的差異他們創建的字段是<= 6。 – dnasim

+0

這張桌子裏沒有什麼可以告訴你他們什麼時候回覆,那麼你如何計算出花了多長時間? –

回答

0

我不確定你到底在想什麼,但你可以從這樣的事情開始。

select user.TicketNumber,user.CreatedAt-agent.CreatedAt from 
    (Select TicketNumber ,CreatedAt ,Sender from Service_Table user 
    Where Sender Like 'User') user left outer join 
    (Select TicketNumber ,CreatedAt ,Sender from Service_Table agent Where Sender Like 'Agent') agent 
    on user.TicketNumber =agent.TicketNumber