SQLite:Query 针对特定的时间跟踪场景

SQLite:Query for a specific time tracking scenario

我有一个特定的场景来跟踪库存项目的进出时间。

我有一个 Inventory_track table 格式如下

      Inv_id     in_time              out_time
1)   I_1111   2015-11-29 21:05:00.  2015-12-01 03:00:00
2)   I_1111  2015-12-01 05:00:00.  2015-12-01 09:00:00
3)   I_1111  2015-12-01 15:00:00.  2015-12-01 17:00:00
4)   I_1111  2015-12-01 21:00:00.  NULL
  1. 每当将库存放入冰箱时,我都会插入一条带有 in_time
  2. 的新记录
  3. 每当取出库存时,我都会更新 out_time(不是插入,只是更新)

在任何给定的时间点,我想找到 库存在 冻结位置之外花费的时间。基本上我想做的是:

(record_2's in_time- record_1's out_time) + ( record_3's in_time- record_2's out_time)

对于给定的广告资源依此类推。 有人可以帮我在 sqlite 中为此进行查询吗?对于上述这种情况,我该如何着手使用自联接。

您可以采取不同的方法。找出最大和最小之间的差异 in_time 并减去该物品在冰箱中停留的时间间隔的总和。

WITH inventory_time_in_freezer AS (
SELECT i1.inv_id, SUM(i1.out_time - i1.in_time) as time_in_freezer
FROM inventory_tack i1
WHERE out_time IS NOT NULL
GROUP BY i1.inv_id
)
SELECT i2.inv_id, MAX(i2.in_time) - MIN(i2.in_time) - iif.time_in_freezer
FROM inventory_tack i2
JOIN inventory_time_in_freezer iif ON iif.inv_id = i2.inv_id
GROUP BY i2.inv_id, iif.time_in_freezer

P.S。上面的查询没有经过测试,只是为了说明这个想法。