【问题标题】:Historical inventory by day按天的历史库存
【发布时间】:2014-06-20 05:00:13
【问题描述】:

我正在使用 mysql 并有一个记录库存订单的表。该表(简化)如下所示:

||id|ordered_date |Date  |itemid| status    ||
||1 |Jan-4        |Jan-4 | a    | ordered   ||
||2 |Jan-6        |Jan-6 | b    | ordered   ||
||3 |Jan-8        |Jan-8 | c    | ordered   ||
||4 |Jan-8        |Jan-9 | c    | shipped   ||
||4 |Jan-6        |Jan-9 | b    | shipped   ||
||4 |Jan-4        |Jan-10| a    | shipped   ||

我们想要的是每天尚未发货的订单总数,所以是这样的:

date  | inventory
Jan-4 |    1
Jan-5 |    1
Jan-6 |    2
Jan-7 |    2
Jan-8 |    3
Jan-9 |    1
Jan-10|    0

我可以使用这样的查询找到任何一天的未发货订单总数:

select count(*) from inventory where 
    status = "Shipped" AND 
    date > "Jan-8" AND 
    ordered_date <= "Jan-8"

但我们需要所有天的订单数量。而上面的查询有个问题,就是找不到还没有发货的订单。因此,我们将不胜感激。

(假设日期列是有效的 SQL 日期)

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    试试这个:

    SELECT date, COUNT(*)
    FROM inventory 
    WHERE status != 'shipped'
    GROUP BY date ORDER BY date;
    

    【讨论】:

    • 行得通!比我想象的要容易得多。我不知道我在想什么。谢谢。
    猜你喜欢
    • 2023-03-17
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    相关资源
    最近更新 更多