2015-07-09 66 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