我有一个数据库,其中包含订单日期、产品代码和客户,就像这个例子一样:
| 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中如何实现这一点呢?
Vous pouvez essayer d'interroger comme ceci :
select *,YEAR(order_date) as order_year from YOUR_TABLE group by code,customer,order_year;