【发布时间】:2021-05-22 10:35:39
【问题描述】:
我是 SQL 和这个网站的新手,如果有任何不清楚的地方,我们深表歉意。
基本上,我有两个单独的表:
表 A:
CustomerID | PromoStart | PromoEnd
1 | 2020-05-01 | 2020-05-30
2 | 2020-06-01 | 2020-07-30
3 | 2020-07-01 | 2020-10-15
表 B:
CustomerID | Date | Payment |
1 | 2020-02-15 | 5000 |
1 | 2020-05-04 | 200 |
1 | 2020-05-28 | 100 |
1 | 2020-06-05 | 1000 |
2 | 2020-06-10 | 20 |
2 | 2020-07-25 | 500 |
2 | 2020-08-02 | 1000 |
3 | 2020-09-05 | 580 |
3 | 2020-12-01 | 20 |
我想要的是获得每个客户在PromoStart 和PromoEnd 之间的所有付款的总和。
所以想要的结果是:
CustomerID | TotalPayments
1 | 300
2 | 520
3 | 580
我想这将涉及一个内部(左?)连接和一个 where 子句,但我就是想不通。
【问题讨论】:
-
请始终披露您的 RDBMS 和版本。
-
SELECT table_b.CustomerId, SUM(Payment) FROM table_b JOIN table_a ON table_b.date BETWEEN table_a.promo_start AND table_a.promo_end。
标签: sql