用SQL日期函数找每个月的销售总额

 
   | |

导读:在本文中专家解决了如何按照月份将每个月的销售量在聚集在一起的问题。他建议直接用日期函数的GROUP BY应用程序。

关键词:Oracle Oracle SQL SQL日期函数

正在加载数据... 【TechTarget中国原创】我们假设的一个例子。我有一些出售小部件的售货员。在我的数据库中列出了每天每个销售员出售的这些部件的数量。例如,Fred在08年10月23日售出了2个,John售出的数量为5。现在是08年10月24日,Fred售出了14个而John出售的数量为2等等并以此类推一年的时间。每个数量都是按日期来记载。但是我想把这些日期按照月份聚集在一起,这样我们就能查看每个售货员每个月的销售量了。我怎么才能将这些月份的日期聚集在一起呢?

【TechTarget中国原创】问:我们假设的一个例子。我有一些出售小部件的售货员。在我的数据库中列出了每天每个销售员出售的这些部件的数量。例如,Fred在08年10月23日售出了2个,John售出的数量为5。现在是08年10月24日,Fred售出了14个而John出售的数量为2等等并以此类推一年的时间。每个数量都是按日期来记载。但是我想把这些日期按照月份聚集在一起,这样我们就能查看每个售货员每个月的销售量了。我怎么才能将这些月份的日期聚集在一起呢?

  答:你可以直接用日期函数的GROUP BY应用程序。这里唯一的问题就是你能够用哪个日期函数。日期函数的确要比你临时采用SQL Standards数据类型要好得多,所以许多的数据库系统都有自己的数据类型。在Standard SQL中,你需要用EXTRACT这个函数:


SELECT EXTRACT(MONTH FROM salesdate) AS salesmonth
     , salesperson
     , SUM(salesqty) AS total_sales
  FROM widget_sales
GROUP
    BY EXTRACT(MONTH FROM salesdate) 
     , salesperson
ORDER
    BY EXTRACT(MONTH FROM salesdate)
     , total_sales DESC

  如果表中包含的时间为一年以上(尽管在你的问题中并没有说明这一点),该查询的结果仍是所有年份中的月销售量。

  注意ORDER BY语句的得到的结果是按照月分类的,而且每个月的销售额都是按照降序排列。

 
查看全文
 
 
 
 
 

Oracle SQL

 
Oracle Application Express(Oracle APEX)设计的一个主要目标是:快速构建基于Oracle数据库的Web应用程序。
 
SELECT子句通常是一个SELECT语句的第一个子句。它标识出你所想要包含到结果集中的列。这些列是从在FROM子句中指定的基表中返回的。
 
没有ORDER BY子句,Oracle不会保证行显示的顺序。它们可能是按照你想要的顺序排列,但也可能不是。
 
Toad For Oracle的产品策略就是为Oracle开发一款工具,它可以满足不同人的不同需求,比如DBA、开发人员、分析师以及管理者等等。
 
据Toad For Oracle产品经理John Pocknell所说,这次发布的Toad 10致力于生产力的概念,其中包括了:灵活性、易用性、自动化和协作等内容。
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录