使用sql语句查询某一年每个月的订单总金额
使用sql语句查询每个月的订单总金额,
首先是order表结构:
order_id (订单id) | product_price (商品金额) | coupon_price (优惠券金额) | create_time (下单日期) | status (订单状态,8表示已完成) |
1 | 100 | 1 | 1620288618 | 1 |
2 | 200 | 2 | 1620288618 | 8 |
3 | 300 | 3 | 1620288618 | 8 |
查询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 (商品总金额-总优惠券金额) |
05 | 495 |
其他 月份不存在的,都当成是金额为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();