2016-12-09 5 views
0

2つの個別のSQLサーバー上に、必要なデータと同じ列を持つテーブルを用意しています。私はUnion Allを使用してクエリを行う単一のテーブルに入れましたが、BatchID、Start Time、およびEnd Timeを取得するためにグループを使用しようとすると、エラーが発生します。Datetimesを使用して複数の列にグループ化する

マイクエリ:

Select BatchID, cast(StartTime as datetime2(0)) as StartTime, 
     cast(EndTime as datetime2(0)) as EndTime 
from derp 
group by BatchID, Cast(StartTime as Date), Cast(EndTime as Date) 

マイエラー:

Msg 8120, Level 16, State 1, Line 3 Column 'derp.StartTime' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

私は、GROUP BY句の開始時間と終了時間を持っているが、私がいないと言っています。私はここで間違って何をしていますか?

答えて

2

あなたはCASTに同様SELECT句のDATEする必要があります。

Select BatchID, Cast(StartTime as Date), Cast(EndTime as Date) 
from derp 
group by BatchID, Cast(StartTime as Date), Cast(EndTime as Date) 
+0

私はDATETIME2でそれらを必要とするが(0)ソリューションは、句、感謝の負荷によってグループにそのキャストを使用して働きました。 – ARidder101

+0

私は可能なときに答えを受け入れる – ARidder101

関連する問題