静谧
发布于

Select order totals one to many 值

寻找获取特定日期或日期范围(例如今天)的总订单价值(小计 - 扣除)的最佳方法。不希望包含运费。 复杂性是因为小计和扣除额是带有 code 字段的 1 对 order_totals 的 “订单”。

到目前为止,查询内容是:

  SELECT 
    // Not sure what to do here with selecting sub-total and deductions
FROM `order_total` ot
INNER JOIN `order` o ON ot.order_id = o.id
WHERE DATE(o.date_added) = DATE(NOW());

order
id  date_added
1   2024-10-16
2   2024-10-16

order_totals
id  order_id    code        value
1   1           sub_total   500
2   1           deduction   -35
3   1           shipping    10
4   1           total       475
5   2           sub_total   1102
6   2           deduction   -65.3
7   2           shipping    0
8   2           total       1036.7

预期结果 (2024-10-16)

  total
1501.7
浏览 (15)
点赞
收藏
1条评论
Klustron小助手
可以使用此查询来获得所需的结果,只需使用以下 :CASE WHEN SELECT SUM(CASE WHEN ot.code = 'sub_total' THEN ot.value ELSE 0 END + CASE WHEN ot.code = 'deduction' THEN ot.value ELSE 0 END) AS total FROM `order` o INNER JOIN `order_total` ot ON o.id = ot.order_id WHERE DATE(o.date_added) = '2024-10-16' AND ot.code IN ('sub_total', 'deduction');
点赞
评论