如何将增量日期id添加到逻辑中?mysql
这看起来很简单,但我不确定如何在mysql中实现。我有一张交易状态变化表。我想做的是为每笔交易找到最长日期,因此它的状态在一个给定的月份。然而,我想计算下个月(第一个月)的交易,我如何在mysql中做到这一点 我有以下建议:如何将增量日期id添加到逻辑中?mysql,mysql,sql,Mysql,Sql,这看起来很简单,但我不确定如何在mysql中实现。我有一张交易状态变化表。我想做的是为每笔交易找到最长日期,因此它的状态在一个给定的月份。然而,我想计算下个月(第一个月)的交易,我如何在mysql中做到这一点 我有以下建议: SELECT Trade_id, max(Status_DateTime), DATE_FORMAT(Status_DateTime,'%Y%m') monthyear, DATE_ADD(DATE_FORMAT(Status
SELECT Trade_id,
max(Status_DateTime),
DATE_FORMAT(Status_DateTime,'%Y%m') monthyear,
DATE_ADD(DATE_FORMAT(Status_DateTime,'%Y%m'), interval 1 month) as MonthYear_increment
FROM tabletrades
WHERE trade_status in ('open','partial','partial01')
and Traade_id in('1234')
group by Trade_id,
DATE_FORMAT(Status_DateTime,'%Y%m'),
DATE_ADD(DATE_FORMAT(Status_DateTime,'%Y%m'), interval 1 month),
但这并没有真正给我想要的东西。。因为MonthYear_增量为空?我需要这个专栏,因为我需要能够计算我的交易作为下一个月的第一
我如何做到这一点,以便我得到一年中的下一个月作为一列,我得到的格式是“年-月-日”,其中“日”是01。目前日期是202005年,我希望第一次也包括在内。您可以使用
row\u number()
获取一个月的最后一个值,然后添加一个月:
SELECT YEAR(status_datetime + interval 1 month),
MONTH(status_datetime + interval 1 month),
t.tradeid, t.status
FROM (SELECT t.*,
ROW_NUMBER() OVER (PARTITION BY year(Status_DateTime), month(Status_DateTime) ORDER BY Status_DateTime desc) as seqnum
FROM tabletrades
WHERE trade_status in ('open','partial','partial01') AND
Traade_id in ('1234')
) t
WHERE seqnum = 1
这不起作用,sql语法错误:“select”在此位置对于此服务器版本“expecting”(“with.)无效。我正在使用mysqlworkbench@Maths12从MySQL 8开始,
row_number()。