我正在開發一個程序,該程序將追蹤銷售人員銷售的單位,這些單位可以是完整交易 (1) 或半交易 (0.5)。我需要做的是找到一種方法來獲取按銷售人員 ID 分組的全部交易和一半交易的總和。
這是資料庫結構:
id | salesperson_id | salesperson_two_id | 已售出日期 |
---|---|---|---|
1 | 5 | 空 | 2022-07-02 |
2 | 3 | 5 | 2022-07-18 |
3 | 4 | 空 | 2022-07-16 |
4 | 5 | 3 | 2022-07-12 |
5 | 3 | 5 | 2022-07-17 |
6 | 5 | 空 | 2022-07-18 |
如果我只想檢索一位銷售人員的 SUM,我有一個有效的查詢:
SELECT SUM(case when salesperson_id = 5 and isnull(salesperson_two_id) then 1 end) as fullDeals, SUM(case when salesperson_id != 5 and salesperson_two_id = 5 或 salesperson_id = 5 and salesperson_two_id != 5 then 0.5 end) as halfDeals FROM sold_logs WHERE MONTH(sold_date) = 07 AND YEAR(sold_date) = 2022;
輸出將如預期:
全部交易 | 一半交易 |
---|---|
2 | 1.5 |
我想要完成的是為表中的所有銷售人員取得這些結果,但不知道如何實現它。這是我想要得到的結果:
salesperson_id | 總交易 |
---|---|
5 | 3.5 |
3 | 1.5 |
4 | 1 |
如果可能的話,我希望結果按總交易數排序。
使用
UNION ALL
取得包含每個銷售人員的所有行的結果集,篩選出您想要的月份並聚合:查看演示。