2017-02-22 12 views
0

私は、次のデータを持っている:アクセスクエリ - 毎日の最新に基づいてフィールドの合計

Site # | Site Name | Product | Reading Date | Volume 
     1 | Cambridge | Regular | 02/21/17 08:00 | 40000 
     2 | Cambridge | Regular | 02/22/17 07:00 | 35000 
     3 | Cambridge | Regular | 02/22/17 10:00 | 30000 

私が達成したい何が最新をしながら、最後の30日間の[音量]のSUMを得ることです1日に1,2回の読書があるかどうかには一貫していないので、毎日読むことができます。私はいくつかのことを試しましたが、それを働かせることはできません。

これは私が試したものです:

SELECT [Site #], Product, Sum(Volume) AS SumOfVolume, DatePart("d",InventoryDate]) AS Day 

FROM [Circle K New] 

GROUP BY [Site #], Product, Day 

HAVING (([Site #]=852446) AND (Product ="Diesel Lows")) 

ORDER BY DatePart("d",[Inventory Date]) DESC; 

結果:

enter image description here

それは同じ日の2回の測定値を追加します。私は、毎日の平均を取って、それから月平均を見つけることを考えていました。しかし、値の変化が平均値に影響を与えるかどうかは分かりません。あなたの説明に基づいて

+0

あなたがしようとしているコードやSQLを投稿してください。 – Fionnuala

+0

ようこそ!ここの人々は興奮してあなたの質問にあなたを助けたいと熱望していますが、彼らがあなたを助けるのを助けることが重要です。 [最小限の完全で検証可能な例](http://stackoverflow.com/help/mcve)を構築することを検討してください。それは、あなたがすでに試したこと、あなたの思考プロセス、そして達成したいことを示しているので重要です。また、コードセクションの[backticks](http://stackoverflow.com/editing-help#comment-formatting)の使用を検討すると、読みやすさが向上します。例えば、41 + 1 = 42は41 + 1 = 42より読むのが簡単です。また、歓迎して良いスキルを進めてください:) – mbigras

+0

私はそれを編集しました。フィードバックをお寄せいただきありがとうございます。 –

答えて

0

select sum(volume) 
from data as d 
where d.readingdate in (select min(d2.readingdate) 
         from data as d2 
         group by int(d2.readingdate) 
         ) and 
     d.readingdate >= dateadd("d", -30, date()); 
+0

min(d2.readingdate)ではなくmax(d2.readingdate)を選択することができますか?残りはうまく見える、tho。 –

+0

これを試しても結果は得られません。クエリーは空白になります。 –

関連する問題