比较日期以查找mysql中的max(date)时出错

时间:2016-05-11 13:34:15

标签: mysql sql date transactions mysql-workbench

我有这个问题:

  

查找每个帐户,他的最后一笔交易,4月份,所有人   帐户使用美元。结果应输入: a)帐户   码                             b)最后一笔交易的代码(如果一天内有两笔交易,您应该输入前面的代码   最新交易)                             c)最后一笔交易的日期。

我的问题是:如何比较一个帐户的所有日期?

    SELECT DISTINCT 
         accounts.account_id
         ,transactions.trn_code 
         ,transactions.trn_date
    FROM accounts 
         inner join transactions on accounts.account_id = transactions.account_id
    WHERE 
         accounts.account_currency = 'DOL' 
         and  transactions.trn_date = MAX(transactions.trn_date)
         and transactions.trn_date >= 01/04/2016 and transactions.trn_date <= 31/4/2016

这会导致错误(当然),因为我无法像这样使用MAX。但我想我必须找到每个帐户本月的最长交易日期。这个想法是对的? 我怎样才能做到这一点?有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你可以试试吗

 SELECT accounts.account_id, transactions.trn_code , transactions.trn_date
    FROM accounts inner join transactions on accounts.account_id = transactions.account_id
    WHERE accounts.account_currency = 'DOL'   
and transactions.trn_date >= 01/04/2016 and transactions.trn_date <= 31/4/2016 and transactions.trn_date=(Select MAX(transactions.trn_date) from transactions)
group by transactions.trn_code , transactions.trn_date,accounts.account_id