2014-09-26 556 views
0

我想在兩種不同的條件下獲取同一個變量的總和。只是想知道是否有辦法將這些加在一起。查詢的細節並不太相關。基本上只是試圖拿第一筆款項,並添加第二筆款項。SQL,如何從兩個不同的查詢中總結兩個總和

例如 -

首先查詢:

select sum(amt_tot) 
    from agbgift, aprdclb 
    where agbgift_id = '1' and agbgift_id = aprdclb_id 

第二個查詢:

select sum(amt_tot) 
    from agbgift, aprxref, aprdclb where 
    aprxref_id = '1' and 
    agbgift_id = aprxref_xref_id and 
    aprxref_id = aprdclb_id and 
    xref_code in ('SPS','BUS','ORG','OWN','FDN'); 

最終的結果我找的是 '第一個查詢點心' +「第二個查詢總和'

+0

[子查詢(http://dev.mysql.com /doc/refman/5.1/en/subqueries.html)? – 2014-09-26 17:24:55

回答

-1

使用子句可以輕鬆實現,如果使用不起作用,可以在from子句中使用別名

with b ( select sum(amt_tot) as bsum 
    from agbgift, aprxref, aprdclb where 
    aprxref_id = '1' and 
    agbgift_id = aprxref_xref_id and 
    aprxref_id = aprdclb_id and 
    xref_code in ('SPS','BUS','ORG','OWN','FDN')) 
, a (select sum(amt_tot) asum 
    from agbgift, aprdclb 
    where agbgift_id = '1' and agbgift_id = aprdclb_id ) 
select a.asum + b.bsum 
from a, b 

這是真的在這種情況下:

select a.asum + b.bsum 
from (select sum(amt_tot) asum 
    from agbgift, aprdclb 
    where agbgift_id = '1' and agbgift_id = aprdclb_id) as a, 
    ( select sum(amt_tot) as bsum 
    from agbgift, aprxref, aprdclb where 
    aprxref_id = '1' and 
    agbgift_id = aprxref_xref_id and 
    aprxref_id = aprdclb_id and 
    xref_code in ('SPS','BUS','ORG','OWN','FDN')) as b 
+0

謝謝,第一部分非常有用。似乎已經得到了一些結果,只需要用數據庫信息進行分析,看看它是否正確! :) – mare630 2014-09-26 17:59:17

+0

我很高興它工作:-) – user3851404 2014-09-26 19:18:46

1

在這種情況下,它是這樣簡單:

SELECT 
/* Query 1 (in parentheses) */ 
(select sum(amt_tot) 
    from agbgift, aprdclb 
    where agbgift_id = '1' and agbgift_id = aprdclb_id) 

    + /* plus */ 

/* Query 2 (also in parentheses) */ 
    (select sum(amt_tot) 
    from agbgift, aprxref, aprdclb where 
    aprxref_id = '1' and 
    agbgift_id = aprxref_xref_id and 
    aprxref_id = aprdclb_id and 
    xref_code in ('SPS','BUS','ORG','OWN','FDN')) 
+0

以更簡單的形式: SELECT (SELECT SUM(something)FROM table1 WHERE a = 1)+(SELECT SUM(something)FROM table2 WHERE a = 1) 總計 – 2014-09-26 17:37:28

+3

謝謝,但這是如何更簡單?這完全一樣。 – GolezTrol 2014-09-26 17:39:47

相關問題