读书人

两个表售卖排行榜的查询

发布时间: 2012-08-22 09:50:34 作者: rapoo

两个表售销排行榜的查询
有两个表,一个是人员表User表 一个是销售表Order表

表情况如下:

User表

UserID UserName
1 小一
2 小二
3 小三
4 小四


Order表
OrderID OrderName OrderUnit OrderNum UserID
1 产品一 3 1 2

2 产品二 5 1 1

3 产品四 3 1 2

4 产品一 3 1 2

5 产品三 3 1 2

6 产品二 5 1 3

7 产品一 3 1 2


想做一个按售销排行榜

比如第一名是谁 销售是多少!这样子排开

[解决办法]
你这个订单表设计的有点。。。

SQL code
--按订单数select User.UserID,    min(User.UserName) 姓名,    count([Order].OrderID) 订单数量from [User] left join [Order] on User.UserID=[Order].UserIDgroup by User.UserIDorder by 订单数量 desc;--按销售数select User.UserID,    min(User.UserName) 姓名,    sum(OrderUnit*OrderNum) 销售数量from [User] left join [Order] on User.UserID=[Order].UserIDgroup by User.UserIDorder by 销售数量 desc;
[解决办法]
SQL code
--各个产品的销量情况select b.[UserName],a.[OrderName],sum(a.[OrderUnit]*a.[OrderNum]) 销量 from [Order] a,[User] bwhere a.[UserID]=b.[UserID]group by b.[UserName],a.[OrderName]order by a.[OrderName],sum(a.[OrderUnit]*a.[OrderNum]) desc--总的销量情况select b.[UserName],sum(a.[OrderUnit]*a.[OrderNum]) 销量 from [Order] a,[User] bwhere a.[UserID]=b.[UserID]group by b.[UserName]order by sum(a.[OrderUnit]*a.[OrderNum]) desc
[解决办法]
探讨

引用:
/*
排名 UserID UserName 销售
-------------------- ----------- -------- -----------
1 2 小二 15
2 3 ……

读书人网 >SQL Server

热点推荐