Saya menulis pertanyaan berikut yang menggabungkan dua jadual dengan betul yang menunjukkan bilangan tugasan yang disiapkan oleh individu dalam pasukan dan kos berkaitan tugasan tersebut:
SELECT users.id AS user_id, users.name, COALESCE(tasks.cost, 0) AS cost, tasks.assignee, tasks.completed, tasks.completed_by FROM users JOIN tasks ON tasks.assignee = users.id WHERE completed IS NOT NULL AND assignee IS NOT NULL
Ini menyediakan jadual berikut:
ID Pengguna | Nama | Penerima tugas | Kos | Selesai | Masa siap |
---|---|---|---|---|---|
18 | Mike | 8 | 0.25 | 2022-01-24 19:54:48 | 8 |
13 | Katie | 13 | 0 | 2022-01-24 19:55:18 | 8 |
13 | Katie | 13 | 0 | 2022-01-25 11:49:53 | 8 |
12 | Jim | 12 | 0.5 | 2022-01-25 11:50:02 | 12 |
9 | Oli | 9 | 0.25 | 2022-03-03 02:38:41 | 9 |
Saya kini ingin pergi lebih jauh dan mencari jumlah kos yang dikumpulkan mengikut nama dan bulan selesai. Walau bagaimanapun, saya tidak dapat memikirkan sintaks untuk GROUP BY selepas klausa pilih dan WHERE semasa. Akhirnya, saya mahu pertanyaan mengembalikan sesuatu seperti ini:
Nama | jumlah_kos | bulan |
---|---|---|
Mike | 62 | Januari |
Katie | 20 | Januari |
Jim | 15 | Januari |
Oli | 45 | Januari |
Mike | 17 | Februari |
Saya telah mencuba pelbagai kombinasi dan klausa GROUP BY bersarang tetapi nampaknya tidak dapat hasil yang saya inginkan. Sebarang petunjuk akan amat dihargai.
Ia kelihatan seperti ini:
Menggabungkan
users
加入一个查询,该查询聚合在tasks
dan mengembalikan jumlah kos bulanan untuk tahun tertentu:Tidak perlu menyemak
completed
是null
还是assignee
是null
,因为null
s ditapis di sini:Di sini: