如何在另一个查询中使用查询结果?

时间:2010-10-10 23:24:00

标签: mysql

我正在尝试编写一个查询,它会在一个名为transactions的表中给我每个月的最后一个条目。我相信我已经到了一半,因为我有以下查询,按月对所有条目进行分组,然后选择每个组中最高的id,这是每个月的最后一个条目。

SELECT max(id),
EXTRACT(YEAR_MONTH FROM date) as yyyymm
FROM transactions
GROUP BY yyyymm

给出正确的结果

id   yyyymm
100  201006 
105  201007 
111  201008 
118  201009 
120  201010

我不知道如何在同一个表上运行查询,但选择与第一个查询中的id匹配的余额列以显示结果

id    balance   date
120   10000     2010-10-08
118   11000     2010-09-29

我已经尝试了子查询并查看了连接,但我不确定如何使用它们。

1 个答案:

答案 0 :(得分:6)

您可以先选择内嵌视图,然后加入其中。这样的事情(没有测试,但应该给你的想法):

SELECT x.id
     , t.balance
     , t.date
  FROM your_table t
       /* here, we make your select an inline view, then we can join to it */
     , (SELECT max(id) id,
        EXTRACT(YEAR_MONTH FROM date) as yyyymm
        FROM transactions
        GROUP BY yyyymm) x
 WHERE t.id = x.id