访问查询分区数据并对每个分区求和



我有一个包含字段datehourvalue的查询
看起来有点像这个

date       hour   value 
xx/xx/xx     15     100
xx/xx/xx     30     122
xx/xx/xx     45      50
...         100     100
...         115      23
...         ...     ...
...         ...     ...
...        2400     400
...          15      23

基本上,date是日期,hour是小时,value是特定15分钟间隔的值。我一直在试图找出一种方法,用每一个小时(15、30、45和100)或(1015、1030、1045、1100)[正如你所看到的那样,时间是军事式的,下午1点是1300,午夜是2400],并将它们的值加在一起。所以我希望返回这样的东西:

xx/xx/xx    100     372
xx/xx/xx    200     23 + (130 data) + (145 data) + (200 data)

等等。。。该表平均有大约100天,它们都从15天开始到2400天,每增加15天,值列的数字各不相同。

我曾想过使用分区、分组方式等,但没有真正的想法来解决它。本质上,我必须取4行(一小时),求和它们的值,吐出日期、小时和求和值,然后每天重复。我不是在要求代码,只是一些帮助我应该使用什么,因为这似乎是一个简单的问题减去了解决它的关键。

非常感谢您的帮助,谢谢!

按小时/100分组几乎可以达到目的-小时减去1将使1 AM降至99,并包含在分组中。这将给出如下查询:

SELECT Table1.Dte, Int(([tme]-1)/100) AS Hr, Sum(Table1.Val) AS TotVal
FROM Table1
GROUP BY Table1.Dte, Int(([tme]-1)/100);

我可能记错了在Access中如何转换为int,但这可能会起作用:

Select
[date],
100 * (1 + Cint(([Hour] - 1) / 100)),
Sum(Value)
From
Query
Group By
[date],
100 * (1 + Cint(([Hour] - 1) / 100))
Order By
1, 2
SELECT
DateCol,
Int(HourCol  -100) * -100 AS Hr,
Sum(Value) AS Value
FROM
YourTable
GROUP BY
DateCol,
Int(HourCol  -100) * -100

或者您可以使用((Hr + 99) 100) * 100

最新更新