使用sql语句查询某一年每个月的订单总金额

使用sql语句查询某一年每个月的订单总金额

使用sql语句查询每个月的订单总金额,

首先是order表结构:

order_id
(订单id)
product_price
(商品金额)
coupon_price
(优惠券金额)
create_time
(下单日期)
status
(订单状态,8表示已完成)
1100116202886181
2200216202886188
3300316202886188

查询2021年sql语句:

SELECT  FROM_UNIXTIME(`create_time`,’%m’) AS `month`,SUM(`product_price`-`coupon_price`) AS `SUM`

FROM `orders`

WHERE 

FROM_UNIXTIME(create_time,’%Y’) = 2021

AND `status` = 8

GROUP BY `month`

结果

month
(月份)
sum
(商品总金额-总优惠券金额)
05495

其他 月份不存在的,都当成是金额为0处理;

使用 thinkphp5.1的写法:

$where = [
   ‘status’ => 8,
];

$field = [
   “FROM_UNIXTIME(`create_time`,’%m’)”   => ‘month’,
   “sum(`product_price`-`coupon_price`)”    => ‘sum’,
];

$year = 2021;//2021年

$stat = Db::name(‘order’)->field($field)
                                        ->where($where)
                                        ->whereRaw(“FROM_UNIXTIME(OrderTime,’%Y’) = :year “,[‘year’ => [$year, \PDO::PARAM_INT] ])
                                       ->group(‘month’)
                                       ->select();

留下回复