gpt4 book ai didi

mysql - 使用sql获取之前的日期

转载 作者:行者123 更新时间:2023-11-30 00:45:53 33 4
gpt4 key购买 nike

我的查询是

SELECT 
matno,
MAT_NAME,
MAX(SWITCH(deldate=? ,ORDCASES )) AS [1/1/2014],
MAX(SWITCH(deldate=DateAdd("d", -1, ?),ORDCASES)) AS [previous_day]
FROM invorder
WHERE (invorder.strno =54009) OR ([invorder.deldate] IS NULL)
GROUP BY matno,MAT_NAME;

在这里,我可以只检查所选日期之前的一个,但如果没有之前日期的记录,我应该将日期再减少一天并检查,直到找到记录。有人可以帮我如何减少并找到前一个日期吗?

最佳答案

在不了解确切情况的情况下,我建议采用以下方法:

SELECT MAX(date) 
FROM myTable
WHERE date < '2014-01-01' --> Replace this as needed

这将导致前一个日期带有记录。无需每天通过减法进行检查。

我已尝试匹配您的情况,请尝试以下操作:

SELECT   invorder.matno,
invorder.MAT_NAME,
MAX(invorder.date) AS this_record_date,
MAX(previous.date) AS prev_record_date
FROM invorder
JOIN invorder AS previous
ON invorder.matno = previous.matno
AND invorder.strno = previous.strno
AND invorder.date > previous.date
WHERE invorder.strno =54009
GROUP BY invorder.matno,
invorder.MAT_NAME

这将选择 strno 54009 的 date 的最大记录,它是 matnoMAT_NAME日期。此行使用相同 matnostrno 的最大日期进行扩展,不包括我们已经选择的日期(因此几乎是第二大日期)。

关于mysql - 使用sql获取之前的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21361325/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com