关于分组及占百分比的sql语句
2011-08-23 00:04
344 查看
视图部份:
SELECT dbo.t_Customer.FCustomerId, dbo.t_Customer.FCustName,
dbo.t_SellOrderEntry.FQty, dbo.t_SellOrderEntry.FAmount, dbo.t_SellOrder.FBillDate,
dbo.t_SellOrder.FYOrNDel
FROM dbo.t_SellOrder INNER JOIN
dbo.t_SellOrderEntry ON
dbo.t_SellOrder.FBillId = dbo.t_SellOrderEntry.FBillId INNER JOIN
dbo.t_Customer ON dbo.t_SellOrder.FFirstCustId = dbo.t_Customer.FCustomerId
存储过程:
--求客户订单百分比
CREATE PROCEDURE sp_SellPecent
@yn varchar (50)
AS
select 客户id,客户名称,总数量,a.总金额,convert(char(5),Convert(decimal(9,2),round(a.总金额/b.总金额,4)*100))+'%' as 占总金额比例 from
(select fcustomerid as 客户id,fcustname as 客户名称,sum(fqty) as 总数量,sum(famount) as 总金额 from v_订单总额排行榜
where Convert(char(4), datepart(year,fbilldate ))+ Convert(char(4), datepart(month,fbilldate)) like
'%'+@yn+'%' and isnull(FYorNDel,0)<>1
group by fcustomerid,fcustname ) a,
(select sum(famount) as 总金额 from v_订单总额排行榜
where Convert(char(4), datepart(year,fbilldate ))+ Convert(char(4), datepart(month,fbilldate)) like
+'%'+@yn+'%' and isnull(FYorNDel,0)<>1
)b order by a.总金额 Desc
GO
SELECT dbo.t_Customer.FCustomerId, dbo.t_Customer.FCustName,
dbo.t_SellOrderEntry.FQty, dbo.t_SellOrderEntry.FAmount, dbo.t_SellOrder.FBillDate,
dbo.t_SellOrder.FYOrNDel
FROM dbo.t_SellOrder INNER JOIN
dbo.t_SellOrderEntry ON
dbo.t_SellOrder.FBillId = dbo.t_SellOrderEntry.FBillId INNER JOIN
dbo.t_Customer ON dbo.t_SellOrder.FFirstCustId = dbo.t_Customer.FCustomerId
存储过程:
--求客户订单百分比
CREATE PROCEDURE sp_SellPecent
@yn varchar (50)
AS
select 客户id,客户名称,总数量,a.总金额,convert(char(5),Convert(decimal(9,2),round(a.总金额/b.总金额,4)*100))+'%' as 占总金额比例 from
(select fcustomerid as 客户id,fcustname as 客户名称,sum(fqty) as 总数量,sum(famount) as 总金额 from v_订单总额排行榜
where Convert(char(4), datepart(year,fbilldate ))+ Convert(char(4), datepart(month,fbilldate)) like
'%'+@yn+'%' and isnull(FYorNDel,0)<>1
group by fcustomerid,fcustname ) a,
(select sum(famount) as 总金额 from v_订单总额排行榜
where Convert(char(4), datepart(year,fbilldate ))+ Convert(char(4), datepart(month,fbilldate)) like
+'%'+@yn+'%' and isnull(FYorNDel,0)<>1
)b order by a.总金额 Desc
GO
相关文章推荐
- 关于分组及占百分比的sql语句
- 关于SQL连接语句中的Integrated Security=SSPI/ture/false
- 请教一下各位大侠,关于sql语句中使用case替换where条件的查询出现空行的原因
- 关于SQL语句查询最近联系人聊天记录(即最近一条消息)
- SQL语句聚合函数、分组、子查询及组合查询
- 关于sql连接语句中的Integrated Security=SSPI
- MyBatis关于映射SQL语句的总结
- 关于Sql语句的心得体会
- SQL 4. 数据分组 - HAVING语句
- 一个关于sql语句的问题解决,包括:字符串拆分,游标
- 关于sql语句的一点总结
- 关于mybatis 的SQL语句查询
- 在论坛中出现的比较难的sql问题:15(生成动态删除列语句 分组内多行转为多列)
- mysql根据每天分组sql语句
- 用SQL语句把物品按名字分组后,只显示价格最低的那一条记录
- 关于sql语句常用函数
- 关于检查Oracle表及列是否存在SQL语句
- 一道SQL语句面试题,关于group by的
- 关于怎么在php中定义的sql语句中使用变量
- sql分组统计语句