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

时间:2016-03-28 15:12:44

标签: mysql sql

我必须编写一个查询来使用所选日期和所选类别从表中检索数据。我写了一个查询,它没有按预期提供正确的数据。如果actiondate列的值为action,则应仅查询最大'AD'的行。

INSERT INTO goldstockvaluation SELECT sh.stockid, sh.description, sh.branch, sh.grossweight, sh.pureweight, sh.purity, sh.goldcarat, sh.mcpergram, sh.goldpergram, sh.fixgold, CURDATE( )
FROM stock_history sh
JOIN (

SELECT stockid, branch,ACTION , MAX( actiondate ) AS MaxDateTime
FROM stock_history
GROUP BY stockid,branch,ACTION 
)groupedsh ON sh.stockid = groupedsh.stockid
AND sh.actiondate = groupedsh.MaxDateTime
AND sh.branch = groupedsh.branch
AND sh.action = groupedsh.action 
AND sh.branch = '8'
AND sh.categoryid = 'G'
AND sh.action = 'AD'
AND sh.actiondate <= '2016-03-28 23:59:59'

这是为了查询action'AD'并拥有max(actiondate)的行。

1 个答案:

答案 0 :(得分:0)

要使用max(action_date)进行查询,您需要使用子查询,例如:

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