如何在sql中获取最后一个值并求和一组值?

时间:2013-10-30 03:40:01

标签: mysql sql mysqli

我正在尝试通过type_money获取每个策略的net_insurance的最后一个值和总和

|policies|
 |id|  |policy_num|  |type_money| 
  1      1234            1
  2      5678            1
  3      3444            2
  4      4577            2


|insurances|
 |id|  |policy_id|  |net_insurance|
  1       1             100
  2       1             200 
  3       1             400
  4       2             500
  5       2             600
  6       3             100
  7       4             200

我在这里试图获得最后一个值

semi result bedore to do the sum            

 |policy_num|  |type_money|  |last_net_insurance|
   1234          1            400
   5678          1            600
   3444          2            100
   4577          2            200

获得最后一个值后,我想通过type_money求和,这就是我真正需要的东西

 |type money|    |sum|
   1              1000
   2               300

我尝试了这个,但我不知道如何获得每项政策的最后一次net_insurance并做一笔总和

  select * from policies
  inner join insurances ON (insurances.policy_id =policies.id)
  group by policies.id

以下是我正在执行此操作的页面

    http://sqlfiddle.com/#!2/acd8e/3

请有人帮助我吗?

我真的很感激帮助

1 个答案:

答案 0 :(得分:1)

这是:

SELECT p.type_money, sum(i1.net_insurance) total FROM (
  SELECT max(id) id FROM insurances
  GROUP BY policy_id
) i2
JOIN insurances i1 USING (id)
JOIN policies p ON p.id = i1.policy_id
GROUP BY p.type_money

小提琴here

BTW,提供小提琴和添加样本查询的绝对+1:)