2017-01-11 3 views
-1

次のSQL文があります。ただし、実行することはできません。 DATEVALUE(スイッチ(アワー([日付時刻])> = 18と時刻([日付時刻])< 22、[日付 時間]」あなたのクエリは、指定された式 が含まれていませんMSアクセススイッチ集計機能

:それはと言います([Date Time])< 2、[Date Time]、Hour([Date Time]]、[Time Time] )]> = 2 And Hour([Date Time] < 6、[Date Time] -1、Hour([Date Time])> = 6 And Hour([Date Time])< 10、[Date Time] - [日付時刻] -1、時間([日付時刻])> = 14および時間([日付 時刻])、時間([日付時刻])> = 10および時間([日付 時刻] < 14、 < 18、[Date Time] -1))DateValue 'は、集計の一部として 関数です。

SELECT DateValue(Switch(Hour([Date Time])>=18 And Hour([Date Time])<22,[Date Time],Hour([Date Time])>=22,[Date Time],Hour([Date Time])>=0 And Hour([Date Time])<2,[Date Time],Hour([Date Time])>=2 And Hour([Date Time])<6,[Date Time]-1,Hour([Date Time])>=6 And Hour([Date Time])<10,[Date Time]-1,Hour([Date Time])>=10 And Hour([Date Time])<14,[Date Time]-1,Hour([Date Time])>=14 And Hour([Date Time])<18,[Date Time]-1)) As DateValue, Avg([MFR g/10min]) AS Average, Max([MFR g/10min]) - Min([MFR g/10min]) As Difference 
FROM [In process analysis result] 
GROUP BY DateValue([Date Time]); 

何が間違っている任意の手掛かりはありますか?

編集1: 私は次のクエリを実行する場合、それは動作します:

SELECT DateValue(Switch(Hour([Date Time])>=18 And Hour([Date Time])<22,[Date Time],Hour([Date Time])>=22,[Date Time],Hour([Date Time])>=0 And Hour([Date Time])<2,[Date Time],Hour([Date Time])>=2 And Hour([Date Time])<6,[Date Time]-1,Hour([Date Time])>=6 And Hour([Date Time])<10,[Date Time]-1,Hour([Date Time])>=10 And Hour([Date Time])<14,[Date Time]-1,Hour([Date Time])>=14 And Hour([Date Time])<18,[Date Time]-1)) AS DateValue, Avg([MFR g/10min]) AS Average, Max([MFR g/10min]) - Min([MFR g/10min]) As Difference FROM [In process analysis result] GROUP BY Switch(Hour([Date Time])>=18 And Hour([Date Time])<22,[Date Time],Hour([Date Time])>=22,[Date Time],Hour([Date Time])>=0 And Hour([Date Time])<2,[Date Time],Hour([Date Time])>=2 And Hour([Date Time])<6,[Date Time]-1,Hour([Date Time])>=6 And Hour([Date Time])<10,[Date Time]-1,Hour([Date Time])>=10 And Hour([Date Time])<14,[Date Time]-1,Hour([Date Time])>=14 And Hour([Date Time])<18,[Date Time]-1);

しかし、結果は私が探しています何ではありません。

enter image description here

DATEVALUEは、()でグループ化されていないと私は最大値と最小の間の平均との差を得ることができませんでした:私は、列の日付でグループにDateValueをしようとしています。

助けてください...

+0

[MSアクセスの可能性のある重複 - 各日のデータの平均のSQLクエリ](http://stackoverflow.com/questions/41581378/ms-access-sql-query-for-average-of-each-day-data) – Gustav

+0

DateTimeをオフセットしないこのように価値がある。他の質問を勉強してください。 – Gustav

答えて

0

あなたのグループ化機能は、(:DATEVALUE()を自分のグループ化基準に追加します):選択と同じにする必要があります

SELECT DateValue(Switch(Hour([Date Time])>=18 And Hour([Date Time])<22,[Date Time],Hour([Date Time])>=22,[Date Time],Hour([Date Time])>=0 And Hour([Date Time])<2,[Date Time],Hour([Date Time])>=2 And Hour([Date Time])<6,[Date Time]-1,Hour([Date Time])>=6 And Hour([Date Time])<10,[Date Time]-1,Hour([Date Time])>=10 And Hour([Date Time])<14,[Date Time]-1,Hour([Date Time])>=14 And Hour([Date Time])<18,[Date Time]-1)) AS DateValue, Avg([MFR g/10min]) AS Average, Max([MFR g/10min]) - Min([MFR g/10min]) As Difference FROM [In process analysis result] GROUP BY DateValue(Switch(Hour([Date Time])>=18 And Hour([Date Time])<22,[Date Time],Hour([Date Time])>=22,[Date Time],Hour([Date Time])>=0 And Hour([Date Time])<2,[Date Time],Hour([Date Time])>=2 And Hour([Date Time])<6,[Date Time]-1,Hour([Date Time])>=6 And Hour([Date Time])<10,[Date Time]-1,Hour([Date Time])>=10 And Hour([Date Time])<14,[Date Time]-1,Hour([Date Time])>=14 And Hour([Date Time])<18,[Date Time]-1));

関連する問題