我的字段为date
hour
和value
它看起来像这样
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行(一小时),总和他们的价值,吐出日期,小时和总和值,然后每天重复。我不是要求代码,只是对我应该使用的内容有所帮助,因为这似乎是一个简单的问题,而不是解决问题的关键。
非常感谢任何帮助,谢谢!
答案 0 :(得分:0)
我可能误解了你如何在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
答案 1 :(得分:0)
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
。
答案 2 :(得分:0)
按小时/ 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);