读书人

统计分析 sql 话语

发布时间: 2013-09-04 10:34:09 作者: rapoo

统计分析 sql 语句
有两个表

客户表:
客户ID 联系人 所属职员
1 LA ZA
2 LB ZA
3 LC ZB
4 LD ZC

订单表:
订单号 客户ID 订单日期
1 1 20130101
2 1 20130102
3 3 20130101

我想统计下 每个职员有多少个客户下过订单
ZA 1
ZB 1

sql语句该怎么写
[解决办法]


create table 客户表
(客户ID int, 联系人 varchar(10), 所属职员 varchar(10))

insert into 客户表
select 1, 'LA', 'ZA' union all
select 2, 'LB', 'ZA' union all
select 3, 'LC', 'ZB' union all
select 4, 'LD', 'ZC'

create table 订单表
(订单号 int, 客户ID int, 订单日期 varchar(10))

insert into 订单表
select 1, 1, '20130101' union all
select 2, 1, '20130102' union all
select 3, 3, '20130101'


select b.所属职员 '职员',count(distinct a.客户ID) '客户数'
from 订单表 a
inner join 客户表 b on a.客户ID=b.客户ID
group by b.所属职员

/*
职员 客户数
---------- -----------
ZA 1
ZB 1

(2 row(s) affected)
*/

[解决办法]
SELECT A.所属职员, cnt=COUNT(distinct B.客户ID)
FROM 客户表 a


INNER JOIN 订单表 b
ON a.客户ID = b.客户ID
GROUP BY A.所属职员

读书人网 >SQL Server

热点推荐