繁体   English   中英

SQL按日期排序的总和

[英]SQL Sum of orders by date

我应该知道这一点,但由于某种原因,这让我感到困惑。

这个简单的代码按天输出所有订单

USE [K.1]
Select CreatedAt,Identifier,RoundedPriceSum from StarOrder
where SiteID = 1
and OrderType <>2
and CreatedAt between '2015/01/01' and '2015/08/20'

CreatedAt是一个日期,Identifier是唯一的订单ID,RoundedPriceSum是订单的总数。

是否可以修改代码以每天提供总计RoundedPriceSum_

使用GROUP BY

Select cast(CreatedAt as date) as CreatedDay, SUM(RoundedPriceSum)
from StarOrder so
where SiteID = 1 and OrderType <> 2 and
      CreatedAt >= '2015-01-01' and
      CreatedAt < '2015/08/20'
group by cast(CreatedAt as date)
order by CreatedDay;

有关查询更改的注意事项:

  • 将日期更改为ISO标准YYYY-MM-DD格式。
  • BETWEEN替换为>=< 这样可以更好地处理带日期的日期。
  • 使用cast(as date)删除时间部分。
  • 添加了ORDER BY因此结果按天排列。
select s.CreatedAt,s.Identifier,x.tot
from StarOrder s
join 
(select CreatedAt,sum(RoundedPriceSum) as tot
from StarOrder
where SiteID = 1
and OrderType <>2
and CreatedAt between '2015/01/01' and '2015/08/20'
group by createdat) x
on x.createdat = s.createdat
where SiteID = 1
and OrderType <>2
and s.CreatedAt between '2015/01/01' and '2015/08/20'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM