sql server 2012-根据错误消息使用一个或多个输入对列求和

sql server 2012-根据错误消息使用一个或多个输入对列求和,sql,sql-server-2012,case,multiple-columns,Sql,Sql Server 2012,Case,Multiple Columns,我有一张如下所示的表格: [booking_id] [generation_time] [original_booking_id] 我已经设法计算出所有[预订id]的平均[生成时间] 但是,如果[original_booking_id]不是零,我想添加[booking_id]的总生成时间 在这种情况下,我应该忽略所有带有[原始订票id]的[订票id],因为这些是另一个订票的更多组成部分,而不是我自己衡量的东西 我想知道,总的来说,所有[预订id]的[生成时间] 我希望这一点很清楚-感谢您的帮

我有一张如下所示的表格:

[booking_id] [generation_time] [original_booking_id] 
我已经设法计算出所有[预订id]的平均[生成时间]

但是,如果[original_booking_id]不是零,我想添加[booking_id]的总生成时间

在这种情况下,我应该忽略所有带有[原始订票id]的[订票id],因为这些是另一个订票的更多组成部分,而不是我自己衡量的东西

我想知道,总的来说,所有[预订id]的[生成时间]


我希望这一点很清楚-感谢您的帮助。

据我所知,这将对您有所帮助

select booking_id,SUM(generation_time)
from bookings
where booking_id<>original_booking_id AND original_booking_id<>0
group by booking_id

这将删除原始\u booking\u id=0和booking\u id=original\u booking\u id的记录。

我的理解是,您需要以下内容:按booking\u id分组的平均生成时间,其中original\u booking\u id为零+每个booking\u id的生成时间,其中original\u booking\u id不为零

您可以使用CTE或子查询对此进行归档

);以cte为例 选择 预订号 ,原登记号码 ,平均生成时间为生成时间 预订 按预订id、原始预订id分组 选择 预订号 ,Sumu时间 来自cte
按预订分组\u id

请用您正在使用的确切DBMS标记问题。还包括示例数据和预期输出将有所帮助。这很好,谢谢。我补充了我的问题。然而,它似乎不是对每个预订id的总生成时间求和-它只是删除原始预订id所在的记录,然后对其余的记录求和?你能详细说明一下预期的输出是什么吗?我希望像这样的数据-[预订id],[生成时间],[其他预订的生成时间链接到此预订]作为gen2,[generation_time+[gen2]作为[booking_id]的TotalTimetaken Forthis booking group-或者类似的东西-抱歉,如果我不清楚-如果我可以显示链接到原始booking_id的预订的生成时间,我可以使其在excel中看起来很好-抱歉,也没有段落