2017-06-14 68 views
1

我有兩個表格,其中包含信息:ID,persona_id,total_amount 角色ID可以重複十次。所以,我讓所有的人一個ID TOTAL_AMOUNT與查詢:獲取數據表格2個表格並對結果進行求和

select d.id as debt_id, p.name as persona, sum(d.total_amount) as total_amount 
from debt d 
    join persons p on d.persona_id = p.id group by p.name 

我想在一個查詢每個表中獲取數據,並做aritmethic propertys與TOTAL_AMOUNT列,並將其返回爲1個TABEL。

表1

id persons_id total_amount 
1 2   50 
2 3   100 
3 2   200 
4 5   300 
5 1   500 

表2

id persons_id total_amount 
1 2   25 
2 1   100 
3 5   50 
4 3   100 
5 4   300 

結果我想獲得與算術運算comined 2個表 - 總量柱(,+,/,*)。 Basicaly一個變化,以獲得最終結果的總量在形式上,我想爲不同的情況。

什麼,我基於JohnHC answear工作是:

select c.id, c.persona_id, c.total_amount - d.total_amount as new_total 

from (   select c.id , c.persona_id, sum(c.total_amount) as total_amount from credit c 
       join persons p on c.persona_id = p.id 
       group by p.name) c 
inner join ( select d.id, d.persona_id, sum(d.total_amount) as total_amount from debt d 
       join persons p on d.persona_id = p.id 
       group by p.name) d 

on c.persona_id = d.persona_id 
group by c.id, c.persona_id 
+0

我想第一個問題應該是「爲什麼你有兩張結構完全相同的表格?」 – RiggsFolly

+0

@RiggsFolly由於呈現的結構與查詢不匹配,因此我將假設OP「省略」一些信息以「讓它更容易」供我們閱讀。我們甚至可能有3個不同的表格。 –

+0

我有兩張結構完全相同的桌子,但是在一張桌子裏放着一堆在地點a採摘的木材,但另一些在b地點持有煤量,但是在這兩個地點做這項工作的人可以是相同的。 Myb問題在於將信息劃分爲2個表格? –

回答

1

如果你想總,請嘗試:

select id, person_id, sum(total_amount) 
from 
(
select id, person_id, total_amount 
from table1 
union all 
select id, person_id, total_amount 
from table2 
) 
group by id, person_id 

如果你想要做其他的事情,嘗試:

select t1.id, t1.person_id, t1.total_amount [+ -/*] t2.total_amount as new_total 
from table1 t1 
inner join table2 t2 
on t1.id = t2.person_id 
group by t1.id, t1.person_id 
+0

謝謝你的幫助後幾分鐘玩弄你的answear我設法得到我想要的。我使用幫助我以我想要的形式獲取數據的解決方案更新了這篇文章。 –

相關問題