27,579
社区成员
发帖
与我相关
我的任务
分享
--> 测试数据:[计划表]
IF OBJECT_ID('[计划表]') IS NOT NULL DROP TABLE [计划表]
GO
CREATE TABLE [计划表]([单店] VARCHAR(8),[计划日期] DATETIME,[计划数] INT)
INSERT [计划表]
SELECT '南昌别克','2012-8-1',30 UNION ALL
SELECT '抚州运通','2012-8-1',20
GO
--> 测试数据:[业务表]
IF OBJECT_ID('[业务表]') IS NOT NULL DROP TABLE [业务表]
GO
CREATE TABLE [业务表]([公司名称] VARCHAR(10),[日期] DATETIME,[所属品牌] VARCHAR(6),[车型] VARCHAR(7),[销售部门] VARCHAR(4),[销售顾问] VARCHAR(6),[贷款渠道] VARCHAR(8),[订单号] VARCHAR(14),[订单状态] VARCHAR(4))
INSERT [业务表]
SELECT '南昌别克','2012/7/25','荣威','荣威550','展厅','黄雨龙','上汽财务','GM201207250023','申请' UNION ALL
SELECT '抚州运通','2012/7/26','别克','荣威','区域','赵婧','GMAC','GM201207250024','合同' UNION ALL
SELECT '南昌别克','2012/7/27','别克','东本','区域','王凤权','GMAC','GM201207250026','申请' UNION ALL
SELECT '南昌雪佛兰','2012/7/28','雪佛兰','雪佛兰','展厅','李智敏','GMAC','GM201207250028','合同'
GO
--> 测试语句:
select a.[单店],sum(a.[计划数]) as [计划数],month([计划日期]) as [月份],
展厅=sum(case when 销售部门='展厅' then 1 else 0 end),
区域=sum(case when 销售部门='区域' then 1 else 0 end),
实际=sum(case when 订单状态='合同' then 1 else 0 end),
达成率=ltrim(cast(sum(case when 订单状态='合同' then 1 else 0 end)*100.0/sum(a.[计划数]) as decimal(9,2)))+'%'
from [计划表] a,[业务表] b
where a.[单店]=b.[公司名称]
and year([计划日期])=2012
group by a.[单店] ,month([计划日期])
/*
单店 计划数 月份 展厅 区域 实际 达成率
-------- ----------- ----------- ----------- ----------- ----------- ------------------------------------------
抚州运通 20 8 0 1 1 5.00%
南昌别克 60 8 1 1 0 0.00%
(2 行受影响)
*/
use db;
declare @t table(单店 varchar(20),计划数 int);
declare @t1 table(公司 varchar(20),销售门部 varchar(10))
--其它字段省略
insert into @t values
('南昌别克',30),
('抚州运通',20)
insert into @t1 values
('南昌别克', '展厅'),
('抚州运通', '区域'),
('南昌别克', '区域'),
('南昌雪佛兰', '展厅');
--select * from @t;
--select * from @t1;
select
b.公司,MAX(a.计划数) as 计划数
,SUM(case when b.销售门部='展厅' then 1 else 0 end) as 展厅
,SUM(case when b.销售门部='区域' then 1 else 0 end) as 区域
,COUNT(1)*1.0/MAX(a.计划数) as 达成率
from @t a join @t1 b on a.单店=b.公司
group by b.公司
/*
公司 计划数 展厅 区域 达成率
-------------------- ----------- ----------- ----------- ---------------------------------------
抚州运通 20 0 1 0.050000000000
南昌别克 30 1 1 0.066666666666
*/