我有一个数据库,其中包含订单日期、产品代码和客户,就像这个例子一样:
Index | code | customer | order_date |
---|---|---|---|
1 | CCC | C | 2018-01-01 |
2 | AAA | A | 2020-01-01 |
3 | CCC | C | 2021-02-02 |
4 | CCC | C | 2021-03-03 |
5 | DDD | A | 2022-04-04 |
6 | FFF | F | 2023-05-05 |
7 | FFF | F | 2023-08-08 |
我需要一个查询来列出所有订单,在订单日期之前的去年中,没有相同产品代码和客户的订单。在这个例子中,期望的输出将是:
Index | code | customer | order_date |
---|---|---|---|
1 | CCC | C | 2018-01-01 |
2 | AAA | A | 2020-01-01 |
3 | CCC | C | 2021-02-02 |
5 | DDD | A | 2022-04-04 |
6 | FFF | F | 2023-05-05 |
如果您查看索引号为4和7的行,您会发现在过去的一年中,还有另一行具有相同的代码和客户信息。
在MySQL中如何实现这一点呢?
Anda boleh cuba bertanya seperti ini:
select *,YEAR(order_date) as order_year from YOUR_TABLE group by code,customer,order_year;