我有一个帐户交易列表。其中一些事务是由预定事件触发的。我需要列出所有计划的事件,并显示该计划触发的最新事务。
所以,我有一张包含交易的表格:
transaction_id
amount
scheduled_transaction_id (NULLABLE)
transaction_date
然后是一个时间表:
scheduled_tranaction_id
正如我所说,我需要做的是获取所有预定交易的清单,以及该时间表的最后交易日期:
返回scheduled_transaction_id,transaction_date,amount
我可以通过加入进行此操作吗?我想的可能是创建一个包含所有最新事务的临时表,每个scheduled_transaction_id,并按transaction_date desc排序,并以某种方式,每个计划只获得一个。然后加入那个临时表。
但这样有效吗?
答案 0 :(得分:1)
如果我理解正确,您需要加入并对结果进行分组。我不知道表名,并在这里假设一些东西。但可能你会想要这样的东西:
SELECT st.scheduled_transaction_id,
MAX(tr.transaction_date)
FROM scheduled_transactions st
LEFT JOIN transactions tr
ON st.scheduled_transaction_id = tr.scheduled_transaction_id
GROUP BY st.scheduled_transaction_id
如果您需要更多列,则还必须GROUP BY
这些列,或者使用AGGREGATE
等MAX
函数。