34,837
社区成员




declare @deptcode varchar(4),
@startdate datetime,
@enddate datetime
set @deptcode = '0201'
set @startdate = '2016-07-01 00:00'
set @enddate = '2016-07-22 23:59'
SELECT c.stddeptcode,
c.stddeptname,
sum(a.actualmoney) as '销售额',
count(distinct a.flowno) as '客流量',
convert(decimal(18,2),round(sum(a.actualmoney)/count(distinct a.flowno),2)) as '客单价'
FROM inf_gdscode b
left join acc_goodsflow a on b.gdscode = left(a.gdssalecode,8)
and a.deptcode = @deptcode
and a.saletime >= @startdate
AND a.saletime <= @enddate
left join inf_stddept c on b.stddept = c.stddeptcode
where c.stddeptcode in (21,22,23)
group by c.stddeptcode,
c.stddeptname
select d.*,c.stddeptname from (
SELECT b.stddept ,
sum(a.actualmoney) as '销售额',
count(distinct a.flowno) as '客流量',
convert(decimal(18,2),round(sum(a.actualmoney)/count(distinct a.flowno),2)) as '客单价'
FROM inf_gdscode b
left join acc_goodsflow a on b.gdscode = left(a.gdssalecode,8)
and a.deptcode = @deptcode
and a.saletime >= @startdate
AND a.saletime <= @enddate
where b.stddept between 21 and 23
group by b.stddept
) d left join inf_stddept c on b.stddept = d.stddeptcode
--这样试下?
declare @deptcode varchar(4),
@startdate datetime,
@enddate datetime
set @deptcode = '0201'
set @startdate = '2016-07-01 00:00'
set @enddate = '2016-07-22 23:59'
select c.stddeptcode,
c.stddeptname,
sum(a.actualmoney) as '销售额',
count(distinct a.flowno) as '客流量',
convert(decimal(18,2),round(sum(a.actualmoney)/count(distinct a.flowno),2)) as '客单价'
from inf_gdscode b
left join (select gdssalecode=left(gdssalecode,8),
actualmoney,
flowno
from acc_goodsflow
where deptcode=@deptcode
and saletime>=@startdate
and saletime<=@enddate) a on b.gdscode=a.gdssalecode
left join inf_stddept c on b.stddept = c.stddeptcode
where c.stddeptcode in(21,22,23)
group by c.stddeptcode,c.stddeptname