Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在多个具有Datetimes的列上分组_Sql Server_Group By - Fatal编程技术网

Sql server 在多个具有Datetimes的列上分组

Sql server 在多个具有Datetimes的列上分组,sql-server,group-by,Sql Server,Group By,我在两个单独的SQL Server上有一对表,它们有我需要的数据和相同的列。我使用Union All将它们放入一个表中进行查询,但当我尝试使用group by获取它们的BatchID、开始时间和结束时间时,出现了一个错误 我的问题是: Select BatchID, cast(StartTime as datetime2(0)) as StartTime, cast(EndTime as datetime2(0)) as EndTime from derp group

我在两个单独的SQL Server上有一对表,它们有我需要的数据和相同的列。我使用Union All将它们放入一个表中进行查询,但当我尝试使用group by获取它们的BatchID、开始时间和结束时间时,出现了一个错误

我的问题是:

 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,16级,状态1,第3行 列“derp.StartTime”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY中 条款


我在GROUPBY子句中有开始时间和结束时间,但它说我没有。我做错了什么?

您还必须在
选择
子句中
转换为
日期

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

您还必须在
SELECT
子句中
CAST
DATE

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

虽然我在DateTime2(0)中需要它们,但解决方案通过在group by子句中使用该转换来工作,谢谢加载。虽然我在DateTime2(0)中需要它们,但解决方案通过在group by子句中使用该转换来工作,谢谢加载。