SET
QUOTED_IDENTIFIER
ON
GO
SET
ANSI_NULLS
ON
GO
--
平台订单转化率
--
对比 按网站下单时间查询 再匹配平台存在多少张单号相同的订单 统计出转化率
ALTER
proc
P_order_change2
--
@web varchar(50)='0', --网站前缀,代号
@startDate
varchar
(
50
)
=
'
0
'
,
--
网站下单时间 开始
@endDate
varchar
(
50
)
=
'
0
'
,
--
网站下单时间 结束
@depId
varchar
(
50
)
=
'
0
'
,
--
部门id
@typeId
varchar
(
50
)
=
'
0
'
--
网站ID
as
declare
@strDate
varchar
(
1000
)
declare
@strSql
nvarchar
(
4000
)
declare
@strweb
varchar
(
1000
)
declare
@strWeb2
nvarchar
(
3000
)
create
table
#figo_order_change
(
web
varchar
(
200
)
null
,
ordercode
varchar
(
500
)
null
,
adddate
datetime
null
)
set
@strDate
=
'
and 1=1
'
if
@startDate
!=
'
0
'
begin
set
@strDate
=
@strDate
+
'
and adddate>=
'''
+
@startDate
+
''''
end
if
@endDate
!=
'
0
'
begin
set
@strDate
=
@strDate
+
'
and adddate<
'''
+
@endDate
+
''''
end
--
select ' ' as ordercode,getdate() as adddate into #figo_order_chang
if
@typeId
!=
'
0
'
begin
set
@strweb
=
@typeId
set
@strweb
=
@strweb
+
'
_orders
'
set
@strWeb2
=
'
insert into #figo_order_change
select
'''
+
@typeId
+
'''
as web, ordercode,adddate from
'
+
@strweb
exec
sp_executesql
@strWeb2
end
else
if
@typeId
=
'
0
'
and
@depId
=
'
1
'
--
-中文
begin
insert
into
#figo_order_change
select
*
from
(
select
'
lv
'
AS
web,ordercode,adddate
from
lv_orders
--
中文
union
all
select
'
gucci88
'
AS
web ,ordercode,adddate
from
gucci88_orders
--
中文
union
all
select
'
jpgshop
'
AS
web , ordercode,adddate
from
jpgshop_orders
--
中文
union
all
select
'
lv886
'
AS
web,ordercode,adddate
from
lv886_orders
--
中文
)
as
b
end
else
if
@typeId
=
'
0
'
and
@depId
=
'
2
'
--
英文
begin
insert
into
#figo_order_change
select
*
from
(
select
'
ilv
'
as
web,ordercode,adddate
from
ilv_orders
union
all
select
'
baghome
'
as
web,ordercode,adddate
from
baghome_orders
union
all
select
'
brandfans
'
as
web ,ordercode,adddate
from
brandfans_orders
union
all
select
'
brandtownjp
'
as
web ,ordercode,adddate
from
brandtownjp_orders
union
all
select
'
lovingcopy
'
as
web,ordercode,adddate
from
lovingcopy_orders
union
all
select
'
lvrolex
'
as
web,ordercode,adddate
from
lvrolex_orders
union
all
select
'
mybags
'
as
web,ordercode,adddate
from
mybags_orders
union
all
select
'
mywatch
'
as
web,ordercode,adddate
from
mywatch_orders
union
all
select
'
supakopi
'
as
web, ordercode,adddate
from
supakopi_orders
union
all
select
'
vip
'
as
web,ordercode,adddate
from
vip_orders
)
as
b
end
else
if
@typeId
=
'
0
'
and
@depId
=
'
0
'
--
-所有
begin
insert
into
#figo_order_change
select
*
from
(
select
'
ilv
'
as
web,ordercode,adddate
from
ilv_orders
union
all
select
'
lv
'
as
web,ordercode,adddate
from
lv_orders
union
all
select
'
baghome
'
as
web,ordercode,adddate
from
baghome_orders
union
all
select
'
brandfans
'
as
web,ordercode,adddate
from
brandfans_orders
union
all
select
'
brandtownjp
'
as
web,ordercode,adddate
from
brandtownjp_orders
union
all
select
'
gucci88
'
as
web,ordercode,adddate
from
gucci88_orders
union
all
select
'
jpgshop
'
as
web, ordercode,adddate
from
jpgshop_orders
union
all
select
'
lovingcopy
'
as
web,ordercode,adddate
from
lovingcopy_orders
union
all
select
'
lv886
'
as
web,ordercode,adddate
from
lv886_orders
union
all
select
'
lvrolex
'
as
web,ordercode,adddate
from
lvrolex_orders
union
all
select
'
mybags
'
as
web,ordercode,adddate
from
mybags_orders
union
all
select
'
mywatch
'
as
web,ordercode,adddate
from
mywatch_orders
union
all
select
'
supakopi
'
as
web,ordercode,adddate
from
supakopi_orders
union
all
select
'
vip
'
as
web,ordercode,adddate
from
vip_orders
)
as
b
end
--
select (select count(id) from ym_orders where code in(select ordercode from #figo_order_change))as ymNum,(select count(ordercode) from #figo_order_change) as webNum,round((select count(id) from ym_orders where code in(select ordercode from #figo_order_change))*100.0/(select count(ordercode) from #figo_order_change),2) as p into #figo_p
--
select 0 as ymNum,0 as webNum,convert(numeric(8,2),0) as p into #figo_p
create
table
#figo_p
(
web
varchar
(
200
)
null
,
ymNum
int
null
,
webNum
int
null
,
p
float
null
)
set
@strSql
=
'
select web,(select count(*) from ym_orders where status>0 and Code in (select ordercode from #figo_order_change where web=b.web
'
+
@strDate
+
'
))
as ymNum ,
(select count(*) from #figo_order_change where web=b.web
'
+
@strDate
+
'
)
as webNum ,
(case when
(select count(*) from #figo_order_change where web=b.web
'
+
@strDate
+
'
)=0 then 0
else
cast((select count(*) from ym_orders where status>0 and Code in (select ordercode from #figo_order_change where web=b.web
'
+
@strDate
+
'
))*1.0*100/(select count(*) from #figo_order_change where web=b.web
'
+
@strDate
+
'
) as numeric(10, 2))
end
)as p
from #figo_order_change b group by web
'
exec
sp_executesql
@strSql
--
print @strSql
--
select @strweb
--
select * from #figo_p
drop
table
#figo_p
drop
table
#figo_order_change
--
select * from #figo_order_change
GO
SET
QUOTED_IDENTIFIER
OFF
GO
SET
ANSI_NULLS
ON
GO