Ich entwickle ein Programm, das die von einem Verkäufer verkauften Einheiten verfolgt, wobei es sich entweder um einen vollständigen Deal (1) oder einen halben Deal (0,5) handeln kann. Was ich tun muss, ist einen Weg zu finden, die Summe aller Transaktionen und die Hälfte der Transaktionen nach Verkäufer-ID gruppiert zu erhalten.
Dies ist die Datenbankstruktur:
id | Verkäufer_ID | salesperson_two_id | Verkaufsdatum |
---|---|---|---|
1 | 5 | leer | 02.07.2022 |
2 | 3 | 5 | 2022-07-18 |
3 | 4 | leer | 16.07.2022 |
4 | 5 | 3 | 12.07.2022 |
5 | 3 | 5 | 2022-07-17 |
6 | 5 | leer | 2022-07-18 |
Wenn ich nur die SUMME eines Verkäufers abrufen möchte, habe ich eine gültige Abfrage:
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 or 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;
Die Ausgabe wird wie erwartet sein:
Alle Angebote | Halber Deal |
---|---|
2 | 1,5 |
Was ich erreichen möchte, ist, diese Ergebnisse für alle Verkäufer in der Tabelle zu erhalten, weiß aber nicht, wie ich das erreichen soll. Dies ist das Ergebnis, das ich erhalten möchte:
Verkäufer_ID | Gesamttransaktionen |
---|---|
5 | 3,5 |
3 | 1,5 |
4 | 1 |
Ich möchte, dass die Ergebnisse nach Möglichkeit nach der Gesamtzahl der Transaktionen sortiert werden.
使用
UNION ALL
获取包含每个销售人员的所有行的结果集,筛选出您想要的月份并聚合:查看演示。