跳至內容
Astera Technology

工單未填狀態,為甚麼不在跟進清單?

跟進清單要包括未確認結案的工單,未填狀態不能直接當作已關閉。

下載完整個案資料及參考答案 ↓

先準備用來排查的資料

這份清單包括所有未確認已結案的工單,空狀態也交同事查核。空值不是一個狀態字串,所以「不等於已關閉」未必成立。明確加入空值條件,但不要因此把未知改寫成已確認開啟。

以下完整建表及資料只在新的 SQLite 測試資料庫執行。全部紀錄均為假設,數量以件計,輸入的 cents 金額欄以貨幣的分存整數;計算後的平均數可能不足整分。小型例子的各表均完整列在預覽。

假設輸入:tickets
編號狀態代碼
T1open
T2closed
T3NULL(未知或未能定義)
下載可編輯 CSV ↓
可直接執行的完整測試資料
CREATE TABLE tickets(id TEXT PRIMARY KEY,status TEXT);
INSERT INTO tickets VALUES ('T1','open'),('T2','closed'),('T3',NULL);

重現錯誤結果,再核對更正

錯誤示範查詢:只用來重現問題
SELECT id,status FROM tickets WHERE status<>'closed' ORDER BY id;
實際執行的錯誤示範結果
編號狀態代碼
T1open
下載可編輯 CSV ↓
更正後的 SQLite 查詢
SELECT id,status FROM tickets WHERE status<>'closed' OR status IS NULL ORDER BY id;
更正查詢的實際結果
編號狀態代碼
T1open
T3NULL(未知或未能定義)
下載可編輯 CSV ↓

T1 開啟,T3 未知。原查詢只留 T1,更正後兩筆都在,T3 仍顯示空值;已確認關閉的 T2 不列入。同事才分得清真正待辦與狀態資料不完整。

套用前先測邊界及資料範圍

確認 T3 已結案後,它便離開清單;不能因為曾是空值便一直保留。

邊界測試要另開新的假設資料庫,重做完整建表及資料,只套用以下改動,再執行更正查詢。測試改動不可用於正式系統。

新假設副本內的邊界改動
UPDATE tickets SET status='closed' WHERE id='T3';
改動後再執行更正查詢的實際結果
編號狀態代碼
T1open
下載可編輯 CSV ↓

此表未計等候日數,也未從事件選最新狀態;假設每張工單有一個現時狀態。

以上錯誤、更正及邊界結果都已在 SQLite 執行,並與另行編寫的預期資料逐行核對。證據只適用於這組假設條件,未測其他資料庫、正式效能或你的現有資料結構。

相關資源