2013-05-14 67 views
0

我想在MS Access中創建一個多項表單,其中每個記錄都有一個字段是一個聚合值。也就是說,我有兩個關係一對多的表。對於表a中的每個記錄(一對多中的「一個」),我想從表b中總結一個字段(一到多箇中的「多」)。記錄的字段是一個總和

我嘗試使用帶有INNER JOIN和SUM sql語句的記錄源,但這不起作用,因爲SUM函數只返回單個聚合值(只有一行含有所有記錄的總和)。我希望表a中的每條唯一記錄都有一行,並且有一個字段可以彙總表b中的所有相關記錄。噢,天哪。我希望這對閱讀它的人有意義。我的解釋似乎可能會讓人困惑,但我不知道如何澄清它。

回答

1

聽起來很簡單:

select 
    a.Field1, sum(b.Field2) as sumOfField2 
from 
    [yourTableA] as a 
    inner join [yourTableB] as b on a.id = b.idOfA 
group by 
    a.Field1 

這應該給一個總價值爲Field1每個值。替換字段和表名以滿足您的需求。

提示:

  1. 如果您需要按多個值,將其添加到字段列表(該指令的select部分)到您的分組字段(group by指令的一部分)
  2. 如果需要還表明,沒有在表b中的任何相關記錄表中的值,用left join替換inner join(總和將是零)

希望這可以幫助

+0

很簡單,當你知道你在做什麼。非常感謝,我很感激。這絕對有助於...現在很簡單,我知道該怎麼做。 – jaromey

+0

@Jslick提示以備將來參考:保持良好的SQL參考。你需要了解如何關聯表格來擠佔其中的大部分。我很樂意提供幫助 – Barranka

相關問題