2013-04-29 76 views
0

我是一個非常有限的SQL知識的初級程序員。我一直在嘗試幾個小時,並閱讀了所有我可以找到的資源,但似乎無法解決如何連接這兩個表並使用ACCESS數據庫獲取總髮票值。使用ACCESS數據庫的SQL加入和總計

TblInvoices

CustomerIDInvoiceAmount

TblCustomers

CustomerIDCustomerNameCustomerRep

所有我需要的是客戶名稱,他們的聲譽和他們的發票總值(OK之間某些日期b我已經破解了那一點)。我已經嘗試過內部聯接和其他任何我能找到的東西,但沒有太多的運氣。

作爲一種理念...

"SELECT CustomerName, CustomerRep, Sum(InvoiceAmount) AS INVOICETOTAL 
FROM TblCustomers, TblInvoices WHERE TblCustomers.CustomerID = TblInvoices.CustomerID 
GROUP BY CustomerID" 

任何幫助將衷心感謝。

+1

這可能會得心應手.. http://stackoverflow.com/questions/4076336/how-to-get -sum-from-two-different-tables-that-are-linked-to-third-one ..我知道它的SQL,但它會給你一些關於這個概念的想法... – 2013-04-29 11:14:34

回答

1

您當前的查詢是接近,但因爲你的SELECT有CustomerNameCustomerRep你需要GROUP BY這些列:

SELECT TblCustomers.CustomerName, 
    TblCustomers.CustomerRep, 
    Sum(TblInvoices.InvoiceAmount) AS INVOICETOTAL 
FROM TblCustomers 
INNER JOIN TblInvoices 
    ON TblCustomers.CustomerID = TblInvoices.CustomerID 
GROUP BY TblCustomers.CustomerName, TblCustomers.CustomerRep; 

MS Access要求出現在SELECT列表的列包含在聚合函數或者在使用聚合時在GROUP BY子句中。如果你只想GROUP BYCustomerId,那麼你也可以使用子查詢得到的結果:

SELECT c.CustomerName, 
    c.CustomerRep, 
    i.INVOICETOTAL 
FROM TblCustomers c 
INNER JOIN 
(
    SELECT Sum(InvoiceAmount) AS INVOICETOTAL, 
    CustomerID 
    FROM TblInvoices 
    GROUP BY CustomerID 
) i 
    ON TblCustomers.CustomerID = i.CustomerID 
+0

非常感謝你 - 我真的感謝你的時間。這現在是有道理的,並解決了我的問題。我想我可以從這裏添加WHERE標準。 – Giveitagosteve 2013-04-29 12:39:58