我需要一些SQLite查詢幫助。我有兩個表,一個名爲「生產」表和表叫「暫停」:如果匹配,SQLite會減去兩個表之間的時間差
CREATE TABLE production (
date TEXT,
item TEXT,
begin TEXT,
end TEXT
);
CREATE TABLE pause (
date TEXT,
begin TEXT,
end TEXT
);
對於其生產的每個項目,在表的生產與當前日期的條目,開始時間和結束時間(格式爲HH:MM:SS的兩個時間戳)已創建。因此,讓我們假設,生產表如下所示:
+------------+-------------+------------+----------+
| date | item | begin | end |
+------------+-------------+------------+----------+
| 2013-07-31 | Item 1 | 06:18:00 | 08:03:05 |
| 2013-08-01 | Item 2 | 06:00:03 | 10:10:10 |
| 2013-08-01 | Item 1 | 10:30:15 | 14:20:13 |
| 2013-08-01 | Item 1 | 15:00:10 | 16:00:00 |
| 2013-08-02 | Item 3 | 08:50:00 | 15:00:00 |
+------------+-------------+------------+----------+
第二張表還包含日期和開始以及結束時間。因此,讓我們假設,在「暫停」表如下所示:
+------------+------------+----------+
| date | begin | end |
+------------+------------+----------+
| 2013-08-01 | 08:00:00 | 08:30:00 |
| 2013-08-01 | 12:00:00 | 13:30:00 |
| 2013-08-02 | 10:00:00 | 10:30:00 |
| 2013-08-02 | 13:00:00 | 14:00:00 |
+------------+------------+----------+
現在我想獲得一個表,其中包含生產之間的時間差開始和結束時間爲每個項目。如果'暫停'表中有匹配的條目,則應該減去暫停時間。
所以基本上,最終的結果應該是這樣的:
+------------+------------+-------------------------------------------------+
| date | Item | time difference (in seconds), excluding pause |
+------------+------------+-------------------------------------------------+
| 2013-07-31 | Item 1 | 6305 |
| 2013-08-01 | Item 1 | 12005 |
| 2013-08-01 | Item 2 | 13207 |
| 2013-08-02 | Item 3 | 16800 |
+------------+------------+-------------------------------------------------+
我真的不知道,我怎麼能與SQLite的完成它。我知道可以使用Python進行這種計算,但最終我認爲讓數據庫執行計算會更好。也許你的某個人可以給我提示如何解決這個問題。我嘗試了不同的查詢,但我總是以不同於我預期的結果結束。
「匹配」是什麼意思?開始/結束時間可以暫停嗎? –
對不起,我忘了提及。理論上,這應該是不可能的。一點背景:我有一臺機器,通常人們都在工作。在午休期間,機器繼續生產該產品。 (但是,只能通過用戶輸入啓動或完成一個項目。)現在,每個人每天在每個項目上工作的時間有多長。所以我需要從機器的整個工作間隔中減去暫停間隔。 – user2494129