3

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:00 は1300 と真夜中の 2400]、それらの値を合計します。だから私はこのようなものを返すことを目指しています:

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

など... テーブルには平均で約 100 日があり、それらはすべて 15 から 2400 で始まり、値列のさまざまな数値で 15 ずつ増加します。

パーティション、グループ化などを使用することを考えましたが、実際に対処する方法はありません。基本的に、4 行 (1 時間) を取得し、それらの値を合計し、日付、時間、および合計値を吐き出して、毎日繰り返す必要があります。私はコードを求めているわけではありません。これは単純な問題からそれを解決するための鍵を引いたもののように見えるので、私が使用すべきものについての助けだけです。

どんな助けでも大歓迎です、ありがとう!

4

3 に答える 3

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
于 2012-11-12T20:21:18.023 に答える
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

于 2012-11-12T20:26:15.843 に答える
0

時間/100 でグループ化すると、ほぼその結果が得られます。時間から 1 を引くと、午前 1 時が 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);
于 2012-11-12T20:28:07.010 に答える