2016-08-25 17 views
0

次のコマンドをVB言語(一部のMicrosoftベースのプログラム開発プログラム)で実行しようとしています。 sql行は、1時間ごとに列の平均(この場合はTag1)を作成する必要があります。DatePartでグループ化されたSQL Server平均(平均)

> sql = " Select DATEPART(hh, Time_Stamp) as Hour, AVG(Tag1) as Mean 
> From TREND001 Where CONVERT(DATETIME2, Time_Stamp, 120) >= Convert 
> (DATETIME2, '" & startDate & "', 120) AND CONVERT(DATETIME2, 
> Time_Stamp, 120) < DATEADD (DAY,1, CONVERT (DATETIME2, '" & endDate & 
> "', 120)) Group BY DATEPART(hh, Time_Stamp)" 

結果は次のとおりです。それ が BY句集計関数またはGROUPのいずれかに含まれていないため

列「TREND001.Time_Stampは、」選択リストでは無効です。

答えて

0

希望これは

Select DATEPART(hh, Time_Stamp) as Hour, AVG(Tag1) as Mean From TREND001 Where CONVERT(DATETIME2, Time_Stamp, 120) >= Convert (DATETIME2, '" & startDate & "', 120) AND CONVERT(DATETIME2, Time_Stamp, 120) < DATEADD (DAY,1, CONVERT (DATETIME2, '" & endDate & "', 120)) Group BY DATEPART(hh, Time_Stamp) 
+0

はすでにそれを試してみましたのに役立ちます。同じ結果。また、Order Byが実行される前にSelect – user3864308

+0

というグループのエイリアス名を使用することはできません。つまり、 –

+0

@ user3864308で実行している正確なクエリですか?それとも少し修正しましたか?このエラーは疑わしいようです。 – sagi