diff --git a/webservice/serve_overview.py b/webservice/serve_overview.py
index 2fdf7abeed59176fb1c86b080d2b51b0c1fb46c2..76c5614bc819c5e2c268094e0b4687ec055d8436 100644
--- a/webservice/serve_overview.py
+++ b/webservice/serve_overview.py
@@ -269,19 +269,19 @@ class RequestHandler(BaseHTTPRequestHandler):
         last_correction_r = Template(tmpl).render(info=last_calib, host=host,
                                                   port=port)
 
-        conn = sqlite3.connect(config['web-service']['job-db']).cursor()
-        conn.execute("SELECT * FROM jobs WHERE status IN ('R', 'PD', 'CG')")
+        conn = sqlite3.connect(config['web-service']['job-db'])
+        c = conn.execute(
+            "SELECT status, elapsed, det_type, proposal, run, action FROM "
+            "slurm_jobs INNER JOIN executions USING (exec_id) "
+            "INNER JOIN requests USING (req_id) "
+            "WHERE finished = 0"
+        )
         running_jobs = {}
-        for r in conn.fetchall():
-            rid, jobid, proposal, run, status, time, det, act = r
-            run = int(run)
-            key = '{}/r{:04d}/{}/{}'.format(proposal, run, det, act)
-            flg = "R"
-            if status in ["QUEUE", "PD"]:
-                flg = "Q"
-            rjobs = running_jobs.get(key, [])
-            rjobs.append((flg, '{}-{}'.format(status, time)))
-            running_jobs[key] = rjobs
+        for status, elapsed, det, proposal, run, act in c:
+            key = f'{proposal}/r{int(run):04d}/{det}/{act}'
+            flg = "Q" if status in {"QUEUE", "PD"} else "R"
+            rjobs = running_jobs.setdefault(key, [])
+            rjobs.append((flg, f'{status}-{elapsed}'))
 
         tmpl = self.templates["running-jobs"]
         running_jobs_r = Template(tmpl).render(running_jobs=running_jobs)