簡體   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