添加了更多上下文的表,我需要基于以下两个条件的数据
- Max (activey_date) with Open_amt <>0
- 排除Open_amt = '0'和State = 'closed'的Max (activity_date)行
<表类>
发票#
账户#
活动
国家
Open_Amt
最后活动Dt
>
St_date
tbody><<tr>123 Customer1 第1幕 发表 12.50 2022-02-18 455 2022-01-04 123 Customer1 第2幕 关闭0.002022-03-05 567 2022-01-04 345 Customer2 第1幕 发表 15.00 2022-02-18 467 2022-01-12 345 Customer2 第2幕 发表 09.35 2022-02-25 488 2022-01-12 678 Customer3 第1幕 发表 30.50 2022-03-20 589 2022-01-23 678 Customer3 第2幕 关闭00.002022-03-30 623 2022-01-23 678 Customer3 法3 发表 30.50 2022-04-02 788 2022-01-23 678 Customer3 四绝 发表 05.50 2022-04-10 988 2022-01-23 表类>
我不确定您是否真的运行mysql
给定的列名。这里是mysql
中的查询:
with
latest as (select Inv, Max(Last_Activity_Dt) as date
from tbl group by (Inv))
select t.*
from latest as lt
left join tbl as t
on lt.Inv = t.Inv
and lt.date = t.Last_Activity_Dt
where t.state <> 'Closed' and Open_Amt <> 0;
它使用mysql 8上可用的CTE。CTE用于根据给定客户的Inv
获取所有latest
记录。
小提琴:https://www.db-fiddle.com/f/5fAJen86r2qReZYHdhxtcj/0