你好,我想查询一周内商品的苹果销售量量应该如何写sql呢?

博客访问: 62837
博文数量: 22
博客积分: 920
博客等级: 准尉
技术积分: 240
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: 数据库开发技术
&&& 比如有个记录公司里每位销售代表在各区业绩的数据表,定义如下:
CREATE TABLE SalesData(district_nbr INTEGER NOT NULL,&& --区号&sales_person CHAR(10) NOT NULL,&& --销售姓名&sales_id INTEGER NOT NULL,&&&&&&& --销售标识&sales_amt DECIMAL(5,2) NOT NULL); --销售量
&&& 现在老板想知道在每个区里的销售量前三名都是谁。此时SalesData表的内容如下:
SalesDatadistrict_nbr sales_person sales_id sales_amt==========================================1&&&&&&&&&&& 'Curly'&&&&&&&& 5&&&&&&& 3.001&&&&&&&&&&& 'Harpo'&&&&&&& 11&&&&&&& 4.001&&&&&&&&&&& 'Larry'&&&&&&&& 1&&&&&& 50.001&&&&&&&&&&& 'Larry'&&&&&&&& 2&&&&&& 50.001&&&&&&&&&&& 'Larry'&&&&&&&& 3&&&&&& 50.001&&&&&&&&&&&&& 'Moe'&&&&&&&& 4&&&&&&& 5.002&&&&&&&&&&&& 'Dick'&&&&&&&& 8&&&&&&& 5.002&&&&&&&&&&&& 'Fred'&&&&&&&& 7&&&&&&& 5.002&&&&&&&&&&& 'Harry'&&&&&&&& 6&&&&&&& 5.002&&&&&&&&&&&&& 'Tom'&&&&&&&& 7&&&&&&& 5.003&&&&&&&&&& 'Irving'&&&&&&& 10&&&&&&& 5.003&&&&&&&&&& 'Melvin'&&&&&&&& 9&&&&&&& 7.004&&&&&&&&&&&&'Jenny'&&&&&&& 15&&&&&& 20.004&&&&&&&&&& 'Jessie'&&&&&&& 16&&&&&& 10.004&&&&&&&&&&&& 'Mary'&&&&&&& 12&&&&&& 50.004&&&&&&&&&&& 'Oprah'&&&&&&& 14&&&&&& 30.004&&&&&&&&&&& 'Sally'&&&&&&& 13&&&&&& 40.00
&&& 在符合SQL-92标准的SQL Server 2000下,可以这样查询:
SELECT DISTINCT district_nbr, sales_person& FROM SalesData AS S0&WHERE sales_amt &= (SELECT MAX(S1.sales_amt)&&&&&&&&&&&&&&&&&&&&&& FROM SalesData AS S1&&&&&&&&&&&&&&&&&&&&& WHERE S0.district_nbr = S1.district_nbr&&&&&&&&&&&&&&&&&&&&&&&&AND S0.sales_amt &= S1.sales_amt&&&&&&&&&&&&&&&&&&&& HAVING COUNT(DISTINCT S0.sales_amt) &= 3);
&&& 得到的结果为:
district_nbr sales_person====================1&&&&&&&&&& 'Harpo'1&&&&&&&&&&&& 'Moe'1&&&&&&&&&& 'Larry'2&&&&&&&&&&& 'Dick'2&&&&&&&&&&& 'Fred'2&&&&&&&&&& 'Harry'2&&&&&&&&&&&& 'Tom'3&&&&&&&&& 'Irving'3&&&&&&&&& 'Melvin'4&&&&&&&&&& 'Oprah'4&&&&&&&&&& 'Sally'4&&&&&&&&&&& 'Mary'
&&& 在添加了OLAP相关函数的SQL-99产品(如Teradata,Oracle,DB2和SQL Server 2005)中,同样的查询就可以写得简单些:
SELECT S1.district_nbr, S1.sales_person&&FROM (SELECT district_nbr, sales_person,
&&&&&&&&&&&&&&&&& DENSE_RANK()&&&&&&&&&&&&&&&&&&OVER (PARTITION BY district_nbr&&&&&&&&&&&&&&&&&&&&&&&&&&& ORDER BY sales_amt DESC)&&&&&&&&&&FROM SalesData)&&& AS S1.(district_nbr, sales_person, rank_nbr)&WHERE S1.rank_nbr &= 3;
阅读(1811) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。查看: 382|回复: 10
--查出销售量在前10的商品的编号,名称,数量declare @goodsname varchar(20)select @goodsname=goodsname from 商品信息表 where select top 10 goodsid as ‘商品编号’,@goodsname as ‘商品名称’,quantity as ‘商品数量’ from 订单商品信息表 order by quantity desc go商品名称这一列的显示不对,求大神帮忙修改一下上面写的代码!应该用表连接做查询。
额 我只晓得SQLServer的T-SQL 中文版SQL Server 2000开发与管理应用实例 都是大量项目中能用到的实例 CSDN SQL大版主的书籍,可说非常不错了 希望对你有帮助 如果还要再深入理解点原理东西 可以看下 微软技术丛书sql2005 T-SQL查询与T-SQL程序设计
人在江湖哀
Select 商品信息表.商品 from 商品信息表,购买信息表 where 购买信息表.ID='C3' and 商品信息表.相同字段=商品信息表.相同字段
大酸奶周胖子
select 公司名称、联系人姓名和订购的商品名称和数量 from table where 条件=已订购了商品
给你个酒店信息表的例子,照着打就行了 酒店信息表(酒店编号、酒店名称、酒店类型、房间类型、房间数量、房间价格)酒店编号、房间类型是主键 用户信息表(用户编号、用户名称、用户电话、入住时间、离开时间)用户编号是主键 预定表(用户编号
刚一直在Hi你都看不到。。 试下下面语句,改了两个地方,用Left Join 不用 Inner Join,另外,判断如果为空则显示 0,如下: Select IsNull(Sum(Sale.SaleNum),0) as '销售总数' from Goods Left Join Sale on Goods.GID = Sale.GID group by Go
select 供应商编号 as 别名 from 表名 group by 供应商编号 having count(1)&=2 最好提供一下表结构,否则该语名可能不成立
炊烟的味道
1.select 编码.名称,单位,单价 where 单价 & 10000 数据库设计时设计一个是否有效的字段,1为有效,0为无效 2.select 编码.名称,单位,单价 where 是否有效=0
表名都没有 select 商品号,商品名称,商品类别名称 from tb1 下面几个都是需要关联表查询的吧
如果是李力华是第一次购买并且,你们会在顾客第一次购买的时候,记录相应的信息。那么就会有3个动作,否则就只有1、2两个动作: 暂定“LX路由器”型号为LX0001,单价500.00,李力华编号为0001。 1.更新订单表:insert into Order(GNo,SNo,BNum,SPr问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
要求是,如果某个部门不存在某项职位,那么这个部门的这个职位人数设为0请问sql语句应该怎么写呢?谢谢了
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
--由于问题没有明确的表结构说明、那就打开脑洞自由发挥了
--TableName为你需要查找表名称、JobId为职位Id数据类型类似,1,2,3,这样的数组
--PeopleNum为该职位人数、DepartmentId为部门Id
(SELECT COUNT(*) FROM [TableName] WHERE JobId LIKE ',xxx,')
AS PeopleNum
FROM [TableName] WHERE DepartmentId=XXX
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:我想通过表单时间sql语句的方式将从表中的数据保存到数据库中,不知道应该怎么处理啊
你好,想跟你请教个问题:我想通过表单时间sql语句的方式将从表中的数据保存到数据库中,不知道应该怎么处理啊
当然可以,可以在事件时执行sql or 存储过程。&&&&
--- 共有 1 条评论 ---
我靠 貌似在公司机器登录忘注销被人用来发帖了了…今天刚辞职…
谢谢了,还要研究一下

我要回帖

更多关于 国产手机销售量排行 的文章

 

随机推荐