我正在尝试通过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
请有人帮助我吗?
我真的很感激帮助
答案 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:)