具有最大值和特定值的MySQL行

具有最大值和特定值的MySQL行,mysql,sql,Mysql,Sql,我必须编写一个查询,使用所选日期和所选类别从表中检索数据。我已经编写了一个查询,但它没有给出预期的正确数据。如果action列的值为'AD',则它应该只查询具有最大actiondate的行 这是为了查询出操作为“AD”且具有maxactiondate的行。要使用maxaction\u date进行查询,您需要使用子查询,例如: select field1, field2 from table where sh.action = 'AD' and sh.actiondate = ( se

我必须编写一个查询,使用所选日期和所选类别从表中检索数据。我已经编写了一个查询,但它没有给出预期的正确数据。如果action列的值为'AD',则它应该只查询具有最大actiondate的行

这是为了查询出操作为“AD”且具有maxactiondate的行。

要使用maxaction\u date进行查询,您需要使用子查询,例如:

select field1, field2
from table
where 
sh.action = 'AD'
and sh.actiondate = (
    select max(sh.actiondate)
        from table 
        where sh.action = 'AD'
); 

MAX actiondate应小于所选日期,并且仅当MAX entry值中包含“AD”时才应返回。我解释了当它包含与任何字段的MAX值的比较时如何查询。您可以根据需要添加条件。这将只返回一行。OP需要按stockid、branch、Action每个组一行如果我们希望每个组一行,我们可以在HAVING子句和group BY中使用此条件。主键是什么?使用SHOW CREATE TABLE stock_history并发布结果。
select field1, field2
from table
where 
sh.action = 'AD'
and sh.actiondate = (
    select max(sh.actiondate)
        from table 
        where sh.action = 'AD'
);