我嘗試了很多沒有正確結果的查詢
我的目標是根據用戶 ID 獲得用戶傭金參加分支 ID 以及同一天在同一分支上參加了多少用戶;
想要這樣的結果
| 日期 | 總攻擊力 | 數量 |
|---|---|---|
| 2022-05-1 | 1 | 60 <-(50 20)-(5 5) |
| 2022-05-2 | 2 | 50 <-(50 20)-(5 15) |
| 2022-05-3 | 3 | 80 <-(80 30)-(25 5) |
| 2022-05-4 | 1 | 200 <-(100 200)-(50 50)在分支 =5 |
從下面的 2 個表格 錢
| ID | 日期 | 分支 ID | 約 | ce | 車 | 陶瓷 |
|---|---|---|---|---|---|---|
| 1 | 2022-05-1 | 7 | 50 | 20 | 5 | 5 |
| 2 | 2022-05-1 | 5 | 100 | 20 | 10 | 5 |
| 3 | 2022-05-2 | 7 | 50 | 20 | 5 | 15 |
| 4 | 2022-05-2 | 5 | 70 | 20 | 10 | 5 |
| 5 | 2022-05-3 | 7 | 80 | 30 | 25 | 5 |
| 6 | 2022-05-3 | 5 | 90 | 20 | 35 | 5 |
| 7 | 2022-05-4 | 7 | 80 | 30 | 25 | 5 |
| 8 | 2022-05-4 | 5 | 100 | 200 | 50 | 50 |
屬性
| ID | 日期 | 用戶身份 | 分支 ID | 屬性 |
|---|---|---|---|---|
| 1 | 2022-05-1 | 20 | 7 | 1 |
| 2 | 2022-05-2 | 20 | 7 | 1 |
| 3 | 2022-05-2 | 21 | 7 | 1 |
| 4 | 2022-05-3 | 20 | 7 | 1 |
| 5 | 2022-05-3 | 21 | 7 | 1 |
| 6 | 2022-05-3 | 22 | 7 | 1 |
| 7 | 2022-05-4 | 20 | 5 | 1 |
提前致謝
uj5u.com熱心網友回復:
看來您想按日期計算 att 但指定用戶的數量。所以有條件地聚合
SELECT
a.date,
COUNT(DISTINCT a.USERID) AS totalatt ,
SUM(CASE WHEN USERID = 20 THEN (m.ca m.ce)-(m.car m.cer) END) AS amount
FROM att a
LEFT JOIN money m ON a.date = m.date AND a.branchid = m.branchid
GROUP BY a.date HAVING AMOUNT > 0
ORDER BY a.date;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/474667.html
