select r.Employeeid,(select count(*) from Orders where Employeeid=r.Employeeid and orderdate>'1994-01-01'and orderdate<'2005-01-01' ) 总计,count(*) 小计 from Orders r
where orderdate>'1997-01-01'and orderdate<'2005-01-01' group by r.EmployeeidNorthwind库中测试通过。
where orderdate>'1997-01-01'and orderdate<'2005-01-01' group by r.EmployeeidNorthwind库中测试通过。
left join (select 公司号,sum(业务收入)*1.0/datediff(d,datepart(yy,输入日期)+'-01-01',输入日期) where 日期 between datepart(yy,输入日期)+'-01-01' and 输入日期
from table1 group by 公司号) b
on a.公司号=b.公司号
where a.日期=输入日期 group by a.公司号
select a.公司号,sum(a.业务收入),avgSR from table1 a
left join (select 公司号,avgSR=sum(业务收入)*1.0/datediff(d,datepart(yy,输入日期)+'-01-01',输入日期) where 日期 between datepart(yy,输入日期)+'-01-01' and 输入日期
from table1 group by 公司号) b
on a.公司号=b.公司号
where a.日期=输入日期 group by a.公司号
建议在table2中增加一个字段,用以存放到每个公司每项业务到那天为止的累计收入(可以根据前一天的累计加上当天的数据计算出来)。这样计算起时,直接用这个数字除以天数即可。再根据日期和公司编号建索引,应该会提高不少效率。
我估计你这张表,应该也是定期(可能是每天)根据其他明细表的数据合计出来的。如果是这样,加一个字段应该没有太大关系。 如果不是这种情况,就没招了。
难道不可以通过存储过程来做日均这个字段吗