表一、yy_base表。
yy代码: yy_code char(10) [主键]
yy名称: description char(30) ==============================
A 亚洲
U 欧洲
...........
==============================
表二、客户表[表名:customer]
客户编码:cust_num char(10) [主键]
客户的YY码:yy_code char(10) 表三、订单头表[表名:co]
订单号:co_num char(10) [主键]
客户编码:cust_num char(10)表四、订单明细表[表名:coitem]
订单号:co_num char(10) [主键]
订单行号:co_line int [主键]
关联号:ref_num char(10)
录入日期:input_date datetime求一过程,输出如下区域 订单总行数 内部订单行数 占总行数比百分 WEB订单行数 占总行数比百分
===========================================================================
亚洲 10000 3000 30% 7000 70%
欧洲 20000 2000 10% 18000 90%
.....
===========================================================================说明:
1、实际是按订单行统计,订单行表的录入日期在2006/06/01后的数据有效。
2、显示结果按yy_base表的yy名称显示,客户基础表中有字段存该客户的yy_code,
订单主表有客户编码字段,订单明细中有订单号。
3、语句优化,速度快。
yy代码: yy_code char(10) [主键]
yy名称: description char(30) ==============================
A 亚洲
U 欧洲
...........
==============================
表二、客户表[表名:customer]
客户编码:cust_num char(10) [主键]
客户的YY码:yy_code char(10) 表三、订单头表[表名:co]
订单号:co_num char(10) [主键]
客户编码:cust_num char(10)表四、订单明细表[表名:coitem]
订单号:co_num char(10) [主键]
订单行号:co_line int [主键]
关联号:ref_num char(10)
录入日期:input_date datetime求一过程,输出如下区域 订单总行数 内部订单行数 占总行数比百分 WEB订单行数 占总行数比百分
===========================================================================
亚洲 10000 3000 30% 7000 70%
欧洲 20000 2000 10% 18000 90%
.....
===========================================================================说明:
1、实际是按订单行统计,订单行表的录入日期在2006/06/01后的数据有效。
2、显示结果按yy_base表的yy名称显示,客户基础表中有字段存该客户的yy_code,
订单主表有客户编码字段,订单明细中有订单号。
3、语句优化,速度快。
1、实际是按订单行统计,订单行表的录入日期在2006/06/01后的数据有效。
2、显示结果按yy_base表的yy名称显示,客户基础表中有字段存该客户的yy_code,
订单主表有客户编码字段,订单明细中有订单号。
3、语句优化,速度快。
-------------------------------------------
感覺在幫你打工:(
結果中的"内部订单行数","WEB订单行数"根據哪個欄位判斷? 关联号:ref_num char(10)??
WEB订单:就是coitem表中的left(关联号,1)="W"的对不起!!
--樓主可以試試select * into #t from
(select A.[description] ,D.co_line,D.ref_num
from yy_base A,customer B,co C,coitem D
where A.yy_code=B.yy_code and B.cust_num=C.cust_num and C.co_num=D.co_num and D.input_date>'2006/06/01') Tselect A.[description] 区域 , B.订单总行数,C.内部订单行数,(C.内部订单行数*1.0/B.订单总行数) 占总行数比百分,D.WEB订单行数,(D.WEB订单行数*1.0/B.订单总行数) 占总行数比百分
from yy_base A
left join ( select [description],count(co_line) 订单总行数 from #t group by [description]) B on A.[description]=B.[description]
left join (select [description],count(co_line) 内部订单行数 from #t where left(ref_num,1)='Q' group by [description]) C on A.[description]=C.[description]
left join (select [description],count(co_line) WEB订单行数 from #t where left(ref_num,1)='W' group by [description]) D on A.[description]=D.[description]
order by A.[description]drop table #t
WEB订单:就是coitem表中的left(关联号,1)="W"的对不起!!
select 区域 ,
订单总行数,
内部订单行数*1.0/订单总行数 *100,
WEB订单行数,
WEB订单行数*1.0/订单总行数 *100
from (
select a.yy名称 as 区域,
(select count(1) from 订单明细表 where 订单号 = c.订单号 and 录入日期 > '2006/06/01') as 订单总行数 ,
(select count(1) from 订单明细表 where 订单号 = c.订单号 and 录入日期 > '2006/06/01' and 判断是不是内部订单) as 内部订单行数 ,
(select count(1) from 订单明细表 where 订单号 = c.订单号 and 录入日期 > '2006/06/01' and 判断是不是web订单) as WEB订单行数
from yy_base a , customer b ,co c
where a.yy_code = b.yy_code
and b.cust_num = c.cust_num
) d
order by 区域