2015-10-14 74 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;