2013-05-21 39 views
0

是否可以連接兩個表,過濾數據並在MS訪問中使用聚合函數?我有兩個表連接表和過濾器並使用聚合函數sql訪問

Inv_details:invnum,itmcde,qnt,price 
Inv_summary:invnum,date,total 

我需要加入這些表格,並用日期範圍過濾它們,並且通過itmcde具有qnt和價格順序的總和。

我試過這樣的事情。

SELECT inv.itmcde,SUM(inv.qnt),SUM(inv.price) FROM (SELECT inv_s.invnum,inv_s.date,inv_d.itmcde,inv_d.total FROM Inv_summary as inv_s INNER JOIN Invoice_details as inv_d ON inv_d.invnum =inv_s.invNum WHERE inv_s.date BETWEEN #3/4/2013# And #5/16/2013#) as inv ORDER BY inv.itmcde 

但這不起作用。

回答

0

嘗試

SELECT d.itmcde, 
     SUM(d.qnt) AS qnt, 
     SUM(d.price) AS price 
    FROM Inv_summary s INNER JOIN Inv_details d 
    ON d.invnum = s.invnum 
WHERE s.date BETWEEN #3/4/2013# AND #5/16/2013# 
GROUP BY d.itmcde 
ORDER BY d.itmcde 

SQLFiddle雖然這提琴是SQL Server相同的一般規則應該在MS Access應用

+0

我想這並具有相同的錯誤'試圖執行一個查詢,不包括指定的表達式itmcde作爲聚合函數的一部分在Inv_details我有複合主鍵(invnum,itmcde)。請幫助我提前 – Ravi

+0

@Ravi看到更新的答案,還提供了sqlfiddle顯示哈它工作。雖然這個小提琴是用於SQL Server的,但相同的一般規則應該適用於MS Access。 – peterm