2017-07-29 60 views
0

我是新的訪問任何人都可以幫助如何查詢多個表1結果訪問2003年我可以查詢超過1表結果

前。

表Tdeposit

user amountDeposit 
A    5000 
A    6000 
B    1000 
B    3000 

表Twithdraw

user amountWithdraw 
A     2000 
A     3000 
B     1000 

(結果我需要做的)

user current 
A   6000 /*edit from 7000* ty for notice*/ 
B   3000 

如何我使用的設計圖或者我需要在SQL視圖做?感謝幫助

+0

請澄清你的問題,你想獲得量的總和,爲每一位用戶 –

+1

搜索'訪問查詢tutorial'網絡。有許多網站和視頻教程。在第一次學習基礎知識時,您將從各種教程中學到更多必要的技能。堆棧溢出最適合於詢問有關特定問題,當您可以發佈有關迄今爲止嘗試的內容的詳細信息時。要回答你的問題的一部分,你可以使用設計視圖來完成這個任務。 –

+0

對於用戶A而言,它不應該是6000嗎? – Parfait

回答

0

爲了避免在每個表中同一用戶的多個實例重複計算,可以考慮加入聚集體的表,然後採取在外部查詢款項的區別:

SELECT d.[user], (d.[DepositSum] - w.[WDrawSum]) As [current] 
FROM 
    (SELECT [user], SUM([amountDeposit]) As DepositSum 
    FROM Tdeposit 
    GROUP BY [user]) As d 
INNER JOIN 
    (SELECT [user], SUM([amountWithdraw]) As WDrawSum 
    FROM Twithdraw 
    GROUP BY [user]) As w 
ON d.[user] = w.[user] 

或者,你可以保存每一個派生表作爲單獨的,保存的MS Access查詢(或視圖):

SELECT d.[user], (d.[DepositSum] - w.[WDrawSum]) As [current] 
FROM depositAggQ d 
INNER JOIN withdrawAgg w 
ON d.[user] = w.[user] 
+2

假設用戶可能有存款並且沒有取款(不是相反),所以不要使用INNER join,使用一個返回所有d記錄的連接,並且只返回匹配的w的記錄。 – June7

+0

這個答案絕對有用,並且會導致期望的結果,但請注意,主要問題實際上是1)「我如何使用設計視圖?」並分開2)「我需要使用SQL視圖嗎?」這並沒有真正回答(1),它回答(2)是誤導性的,因爲第一個查詢需要SQL View,但是沒有說明你提到的所有3個後面的查詢都可以在Design View中完成,一些非常方便,對於新來的Access可以說更好。 –

+0

好點@CPerkins ...我會等待OP澄清。通常情況下,SO不是教程的地方。理想情況下OP會嘗試,但我可以添加如何爲新的Access用戶實施。 – Parfait

1

無論您是否在任何表中有行,這都會工作。

select 
    USER, SUM(Amount) 
    from 
    (
    select 
    user, amountDeposit as Amount from TDeposit 
    UNION ALL 
    SELECT 
    user, -amountWithdraw as Amount from TWithdraw 
    ) as x 
    Group By user 
order by user