怎样写这些问题sql语句?
table
主表:
dlid 日期 销售类型 部门编码 业务员编码 客户编码
子表
dlid 仓库 货物编码 数量 单价 金额
档案表:部门档案、客户档案、业务员、货物档案
每一年一个数据库,如sale_2006、sale_2007.
想查询以下结果
今年与去年相同期间销售额比较,1.可按部门、业务员、客户比较,表格如下
部门(或业务员或客户)│ 2006年销售额(或2006年销售数量)│ 2007年销售额(或2007年销售数量)│ 增长额(增长数)│ 增长百分比
2.可按部门货物、业务员货物、客户货物比较,表格如下
部门(或业务员或客户)│货物名称 2006年销售额(或2006年销售数量)│ 2007年销售额(或2007年销售数量)│ 增长额(增长数)│ 增长百分比
3. 第1点与2点可按去年全年销售额大小排序,第2点可按先按部门\业务员\客户的增长额降序,再按货物增长额降序.
怎样写这些视图,或用存储过程,能使前台程序VB编程调用时快速方便,请各位高手相助,先谢谢!!
------解决方案----------------------用视图吧方便点
create view vDept2006
as
select
a.部门编码,
a.部门名称,
销售数量=sum(b.数量),
销售额=sum(b.单价*金额)
from 部门表 a
left join sale_2006.dbo.主表 b
on a.部门编码=b.部门编码
left join sale_2006.dbo.子表 c
on a.dlid=c.dlid
--这里不用where 日期=2006之类的了吧,2006年的库应该只有2006年的数据吧
group by a.部门编码,a.部门名称
go
------解决方案----------------------笔误,应该是sum(c.xxx)
create view vDept2006
as
select
a.部门编码,
a.部门名称,
销售数量=sum(c.数量),
销售额=sum(c.单价*金额)
from 部门表 a
left join sale_2006.dbo.主表 b
on a.部门编码=b.部门编码
left join sale_2006.dbo.子表 c
on a.dlid=c.dlid
--这里不用where 日期=2006之类的了吧,2006年的库应该只有2006年的数据吧
group by a.部门编码,a.部门名称
go