Hi @David Chase ,
Please refer below updated statement:
;WITH numbering AS (
SELECT OriginalTargetDate,
start_time = convert(smalldatetime, '20210616 08:30'),
end_time = convert(smalldatetime, '20210616 16:00'),
rowno = row_number() OVER(partition by OriginalTargetDate ORDER BY RecordID),
cnt = COUNT(*) over (partition by OriginalTargetDate)
FROM RepairOrder
)
UPDATE numbering
SET OriginalTargetDate = dateadd(MINUTE, (rowno - 1) * datediff(MINUTE, start_time, end_time)/(cnt-1), start_time)
select * from [RepairOrder]
EDIT on 2021-06-16:
;WITH numbering AS (
SELECT OriginalTargetDate,
start_time = convert(smalldatetime, '20210616 08:30'),
end_time = convert(smalldatetime, '20210616 16:00'),
rowno = row_number() OVER(partition by cast(OriginalTargetDate as date) ORDER BY RecordID),
cnt = COUNT(*) over (partition by cast(OriginalTargetDate as date))
FROM RepairOrder
)
UPDATE numbering
SET OriginalTargetDate = dateadd(MINUTE, (rowno - 1) * datediff(MINUTE, start_time, end_time)/(cnt-1), start_time)
select * from [RepairOrder]
Output:
RecordID RepairOrderID OriginalTargetDate JobSize
58393 64684 2021-06-16 08:30:00 NULL
58399 64719 2021-06-16 10:00:00 NULL
58433 64711 2021-06-16 11:30:00 NULL
58439 64716 2021-06-16 13:00:00 NULL
58454 64722 2021-06-16 14:30:00 NULL
58460 64728 2021-06-16 16:00:00 NULL
Best regards,
Melissa
If the answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.