22,210
社区成员
发帖
与我相关
我的任务
分享
create table 客户表(id int ,客户名称 varchar(20))
create table 产品表(id int ,产品名 varchar(20),单价 int,成本价 int)
create table 订单表(id int,订单产品id int,客户id int,订单时间 datetime)
create table 出库表(id int ,产品id int , 出库数量 int)
insert into 客户表 values (1,'张三')
insert into 客户表 values (2,'李四')
insert into 客户表 values(3,'王五')
insert into 产品表 values(1,'饼干',3,2)
insert into 产品表 values (2,'饮料',3,1)
insert into 产品表 values (3,'牛奶',2,1)
insert into 订单表 values(1,1,3,'2009/03/02')
insert into 订单表 values(2,2,3,'2009/03/20')
insert into 订单表 values(3,2,2,'2009/03/22')
insert into 订单表 values (4,3,1,'2009/04/05')
insert into 出库表 values (1,1,100)
insert into 出库表 values (2,2,100)
insert into 出库表 values (3,3,100)
declare @table table (名次 int identity (1,1) ,客户名称 varchar(20),总金额 int,利润 int )
insert into @table
select 客户名称,sum(总金额)as 总金额 ,sum(利润) as 利润
from (
select
top 10
a.客户名称,
b.订单产品id,
d.单价* c.出库数量 as 总金额,
(d.单价-d.成本价)* c.出库数量 as 利润
from 客户表 a , 订单表 b , 出库表 c, 产品表 d
where a.id= b.客户id and b.订单产品id = d.id and d.id = c.产品id
and b.订单时间 between '2009-03-01'and '2009-03-31'
order by 总金额 desc ,利润 desc
) cte
group by cte.客户名称
order by 总金额 desc ,利润 desc
--结果
select * from @table
/*
名次 客户名称 总金额 利润
1 王五 600 300
2 李四 300 200
*/