2015-10-14 73 views
1

我想總結一段時間的數值。我遇到的困難是如果有一種方法將日期分配給最終值。 澄清,這裏是我的示例表。合併查詢的日期

Object Observation Date 
    1  215  10/1/2015 
    2  125  10/1/2015 
    1  225  10/4/2015 
    2  150  10/4/2015 
    1  250  10/8/2015 

這個想法是通過對象和日期來總結觀察。這很容易,難的部分是我不知道我會怎麼做。目前我使用這個查詢按月份總和

SELECT Object, Sum(Observation) AS [Total], Month([Date]) AS [Month], 
FROM Records 
GROUP BY Month([Date]), Object; 

這給了我這個月的總數。理想情況下,我想要做的是儘量讓它不會得到一個數字月,mm,我會得到一個日期mm/dd/yyyy。所以日期帖子總和將顯示爲10/01/2015。 這樣輸出會是這個樣子:

Object Total Date 
    1  690 10/1/2015 
    2  275 10/1/2015 

我必須打造出一個使用日曆選擇在,我可能要比較一個時間拉動多個月開始和結束日期的查詢。

SELECT Object, Date, Total 
FROM Table1 
WHERE [Month] Between Month(Forms![Main Form]![Start Date]) And Month(Forms![Main Form]![End Date]) 
GROUP BY Object, Month, Total; 

我目前的方法不允許我翻到下一個日曆年。希望這將解決我的問題與翻車問題。這可能將月份的第一個月分配到月份總結後的日期?

回答

1

這可能是:

SELECT 
    Object, 
    DateSerial(Year([Date]), Month([Date]), 1) As YearMonth, 
    Sum(Observation) AS [Total] 
FROM 
    Table1 
WHERE 
    [Date] 
     Between Forms![Main Form]![Start Date] 
     And Forms![Main Form]![End Date] 
GROUP BY 
    Object, 
    DateSerial(Year([Date]), Month([Date]), 1) 
0

您可以使用DateSerial()來確定該月的第一天。

SELECT Object, Sum(Observation) AS [Total], DateSerial(Year(Date()), Month(Date()),1) AS [Month], 
FROM Records 
GROUP BY DateSerial(Year(Date()), Month(Date()),1), Object;