求SQL 取出这个数据,status_date为日期,prod_inst_id为账号,action_type为状态,A为开始,D为结束,A-D是一个过程。需要取出 数据要满足,日期大于在一个月,且跨度的月份要是指定月的账号,(比如action_type=A,status_date=20221023 ;action_type=D,status_date=20221223 )这里有两个月了,指定的月份为11月。
SELECT * FROM table
WHERE action_type IN ('A', 'D')
AND DATEDIFF(MONTH, status_date, DATEADD(MONTH, 1, status_date)) = 1
AND MONTH(status_date) = 11
AND prod_inst_id IN (
SELECT prod_inst_id
FROM table
WHERE action_type = 'A'
AND status_date BETWEEN '2022-10-23' AND '2022-12-23'
GROUP BY prod_inst_id
HAVING COUNT(*) = 2
)
十月份开始十一月份结束且大于一个月,这算不算?