繁体   English   中英

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

[英]Access query to partition data and sum each partition?

我有一个查询字段date hourvalue
它看起来像这样

    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行(一小时),总和他们的价值,吐出日期,小时和总和值,然后每天重复。 我不是要求代码,只是对我应该使用的一些帮助,因为这似乎是一个简单的问题减去解决它的关键。

非常感谢任何帮助,谢谢!

我可能错误地告诉你如何在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

按小时/ 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM