Sql 从复杂的select语句更新视图中的行
我一直在处理一个查询,该查询识别数据库中数据的问题:Sql 从复杂的select语句更新视图中的行,sql,sql-server,Sql,Sql Server,我一直在处理一个查询,该查询识别数据库中数据的问题: SELECT t1.* FROM [DailyTaskHours] t1 INNER JOIN ( SELECT ActivityDate ,taskId ,EnteredBy FROM [DailyTaskHours] WHERE hours != 0 GROUP BY EnteredBy ,taskId ,ActivityDate HA
SELECT t1.*
FROM [DailyTaskHours] t1
INNER JOIN (
SELECT ActivityDate
,taskId
,EnteredBy
FROM [DailyTaskHours]
WHERE hours != 0
GROUP BY EnteredBy
,taskId
,ActivityDate
HAVING COUNT(*) > 1
) t2 ON (
t1.ActivityDate = t2.ActivityDate
AND t1.taskId = t2.taskId
AND t1.EnteredBy = t2.EnteredBy
AND t1.Hours != 0
)
ORDER BY ActivityDate
这样做的目的是查找在同一天为同一人在同一任务上预订的重复小时数:
现在我发现了这些问题,我想通过更新来纠正它们。我希望比另一个更早创建的重复活动将值从小时移动到doubleBookedHours,并将小时数清零。其次,我希望最近一行的DoubleBookedFLag列更新为1
如何实现这一点?您可以编写SQL Server代理作业来调用T-SQL或SSIS包来执行逻辑 在设计算法时,我总是喜欢使用伪代码 比如说