跳至內容
Astera Technology

工作看板為甚麼漏了沒有待辦的組別?

組別只有已完成工作,或完全沒有工作,也應在看板顯示零待辦。

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

先準備用來排查的資料

主管要看齊所有組別,才知道哪些有工作、哪些沒有。待辦狀態要放在連接工作紀錄的條件內;連接後才篩選,會把沒有工作及只有已完成工作的組別整個刪走。

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

假設輸入:departments
編號
D1
D2
下載可編輯 CSV ↓
假設輸入:tasks
編號組別編號狀態代碼
T1D1open
T2D2closed
下載可編輯 CSV ↓
可直接執行的完整測試資料
CREATE TABLE departments(id TEXT PRIMARY KEY);
CREATE TABLE tasks(id TEXT PRIMARY KEY,department_id TEXT,status TEXT);
INSERT INTO departments VALUES ('D1'),('D2');
INSERT INTO tasks VALUES ('T1','D1','open'),('T2','D2','closed');

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

錯誤示範查詢:只用來重現問題
SELECT d.id,COUNT(t.id) AS open_tasks FROM departments d
LEFT JOIN tasks t ON t.department_id=d.id
WHERE t.status='open' GROUP BY d.id ORDER BY d.id;
實際執行的錯誤示範結果
編號待辦數
D11
下載可編輯 CSV ↓
更正後的 SQLite 查詢
SELECT d.id,COUNT(t.id) AS open_tasks FROM departments d
LEFT JOIN tasks t ON t.department_id=d.id AND t.status='open'
GROUP BY d.id ORDER BY d.id;
更正查詢的實際結果
編號待辦數
D11
D20
下載可編輯 CSV ↓

錯誤看板只剩 D1。更正後 D1 有一項待辦,D2 是零。計工作編號而非整行,便不會把保留下來的組別當成一項工作。這只是修正資訊,未據此建議調配人手。

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

加入從未有工作的 D3,也須顯示零;不能為了出現在看板而建立假工作。

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

新假設副本內的邊界改動
INSERT INTO departments VALUES ('D3');
改動後再執行更正查詢的實際結果
編號待辦數
D11
D20
D30
下載可編輯 CSV ↓

例子假設每項工作只有一個所屬組別;共同負責的工作須另訂計數規則。

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

相關資源