在SQL中比较与去年同期的行的日期。
P粉821231319
P粉821231319 2023-08-02 22:49:52
0
1
684
<p>我有一个数据库,其中包含订单日期、产品代码和客户,就像这个例子一样:</p> <table class="s-table"> <thead> <tr> <th style="text-align:center;">Index</th> <th style="text-align:center;">code</th> <th style="text-align:center;">customer</th> <th style="text-align:center;">order_date</th> </tr> </thead> <tbody> <tr> <td style="text-align:center;">1</td> <td style="text-align:center;">CCC</td> <td style="text-align:center;">C</td> <td style="text-align:center;">2018-01-01</td> </tr> <tr> <td style="text-align:center;">2</td> <td style="text-align:center;">AAA</td> <td style="text-align:center;">A</td> <td style="text-align:center;">2020-01-01</td> </tr> <tr> <td style="text-align:center;">3</td> <td style="text-align:center;">CCC</td> <td style="text-align:center;">C</td> <td style="text-align:center;">2021-02-02</td> </tr> <tr> <td style="text-align:center;">4</td> <td style="text-align:center;">CCC</td> <td style="text-align:center;">C</td> <td style="text-align:center;">2021-03-03</td> </tr> <tr> <td style="text-align:center;">5</td> <td style="text-align:center;">DDD</td> <td style="text-align:center;">A</td> <td style="text-align:center;">2022-04-04</td> </tr> <tr> <td style="text-align:center;">6</td> <td style="text-align:center;">FFF</td> <td style="text-align:center;">F</td> <td style="text-align:center;">2023-05-05</td> </tr> <tr> <td style="text-align:center;">7</td> <td style="text-align:center;">FFF</td> <td style="text-align:center;">F</td> <td style="text-align:center;">2023-08-08</td> </tr> </tbody> </table> <p>我需要一个查询来列出所有订单,在订单日期之前的去年中,没有相同产品代码和客户的订单。在这个例子中,期望的输出将是:</p> <table class="s-table"> <thead> <tr> <th style="text-align:center;">Index</th> <th style="text-align:center;">code</th> <th style="text-align:center;">customer</th> <th style="text-align:center;">order_date</th> </tr> </thead> <tbody> <tr> <td style="text-align:center;">1</td> <td style="text-align:center;">CCC</td> <td style="text-align:center;">C</td> <td style="text-align:center;">2018-01-01</td> </tr> <tr> <td style="text-align:center;">2</td> <td style="text-align:center;">AAA</td> <td style="text-align:center;">A</td> <td style="text-align:center;">2020-01-01</td> </tr> <tr> <td style="text-align:center;">3</td> <td style="text-align:center;">CCC</td> <td style="text-align:center;">C</td> <td style="text-align:center;">2021-02-02</td> </tr> <tr> <td style="text-align:center;">5</td> <td style="text-align:center;">DDD</td> <td style="text-align:center;">A</td> <td style="text-align:center;">2022-04-04</td> </tr> <tr> <td style="text-align:center;">6</td> <td style="text-align:center;">FFF</td> <td style="text-align:center;">F</td> <td style="text-align:center;">2023-05-05</td> </tr> </tbody> </table> <p>如果您查看索引号为4和7的行,您会发现在过去的一年中,还有另一行具有相同的代码和客户信息。<br /><br />在MySQL中如何实现这一点呢?</p><p><br /></p>
P粉821231319
P粉821231319

全部回复(1)
P粉300541798

您可以尝试像这样查询:

select *,YEAR(order_date) as order_year from YOUR_TABLE group by code,customer,order_year;

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板