我在2个独立的SQL Server上有一对表,它们有我需要的数据和相同的列。我已经使用Union All将它们放入单个表中进行查询,但是当我尝试使用group by获取BatchID,Start Time和End Time时,我收到错误。
我的查询:
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 列'derp.StartTime'在选择列表中无效,因为它不包含在聚合函数或GROUP BY中 子句。
我在group by子句中有开始时间和结束时间,但它说我没有。我在这做错了什么?
答案 0 :(得分:2)
您必须在CAST
条款中DATE
到SELECT
:
Select BatchID, Cast(StartTime as Date), Cast(EndTime as Date)
from derp
group by BatchID, Cast(StartTime as Date), Cast(EndTime as Date)