2015-07-09 67 views
0

我有一個名爲「呼叫」的表,其中包含一些呼叫日誌,並且想要運行一個報告,告訴我使用了多少次電話號碼以及位置名稱而不是序列號。該表是這樣的:在SQL中根據列值顯示名稱

record# phone  serial 
1   1001  111111 
2   1001  111111 
3   1002  222222 
4   1003  111111 

我有了這個迄今:

select phone, count(phone) From Calls group by phone 

這給了我:

1001 2 
1002 1 
1003 1 

但我也希望包括序列,但它顯示作爲一個名字,所以111111就是'倫敦'

ie

1001 2 London 
1002 1 Glasgow 
1003 1 London 

這可能嗎?

感謝

+0

你在哪裏有串口的名字嗎?是存儲在一個表中嗎? –

回答

0

這應做到:

SELECT `phone`, count(`phone`), 
    CASE 
     WHEN `serial` = '11111' THEN 'London' 
     WHEN `serial` = '22222' THEN 'Glasgo' 
     ELSE `serial` 
    END AS `city` 
FROM `Calls` group by `phone` 
+0

這是拋出一個錯誤,說:「選擇列表中的串行是無效的,因爲它不包含在聚合函數或group by子句中」 – ChrisD

+0

非常好,現在只是將序列添加到組。您可能已經收集我對SQL知之甚少,但感謝您的全力幫助和耐心:) – ChrisD

+0

很高興它爲您工作 – Shawn